0

我有一个类似下一个的功能,例如:

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

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

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

4

2 回答 2

3

我会说这是一个很大的禁忌,原因如下:

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

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

逻辑:除了设置功能外,您还将实施相应的getVisible()getInvisible()良好的措施。像下面这样的代码片段肯定会引起足够的混乱。

setVisible()  
...  
getInvisible()  

(wait, what??)

setInVisible()  
...  
getVisible()

(whats the state now??)
于 2013-08-02T09:56:47.847 回答
2

我知道showhide有时在这种情况下,尤其是在 Windows 上。

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

不过,出于 TheCodeArtist 已经指出的原因,我不推荐仅用于阅读或更改标志。

于 2013-08-02T10:03:18.700 回答