将布尔值传递给函数而不是创建两个函数

时间:2013-08-02 09:35:38

标签: function boolean

我有一个类似下一个的功能:

public void setVisible(bool visible){ ... }

在这种情况下创建两个公共函数setVisible和setInvisible以提高可读性是不是更好?

也许在内部可以创建私有函数以避免重复代码...

2 个答案:

答案 0 :(得分:3)

我会说这是 BIG 禁忌,原因如下:

可读性:两个关键字setVisible()setInvisible()之间只有很小的差异,并且在滚动100行代码时容易误读。

语义:拥有2个不同的 setXXX() setYYY()函数意味着存在2个不同的属性。虽然你会知道内部的两个映射都是相同的,但对于你的库/ API新手来说,这可能并不明显。

逻辑:除了设置功能之外,您还将实施相应的getVisible()getInvisible()以获得良好的衡量标准。使用以下代码片段肯定会引起足够的混淆。

setVisible()  
...  
getInvisible()  

(wait, what??)

setInVisible()  
...  
getVisible()

(whats the state now??)

答案 1 :(得分:2)

我在这种情况下有时会认识showhide,尤其是对于Windows。

我喜欢它强调它不是纯粹的getter和setter ,而是更多的代码来实际显示或隐藏窗口。尽管这仍然只是“改变”状态,但可能不会产生大量的运行时成本。

仅仅为了阅读或改变旗帜,我不会推荐它,原因是TheCodeArtist已经指出。