我有一个类似下一个的功能,例如:
public void setVisible(bool visible){ ... }
在这种情况下创建两个公共函数 setVisible 和 setInvisible 以提高可读性不是更好吗?
也许可以在内部创建一个私有函数以避免重复代码......
我会说这是一个很大的禁忌,原因如下:
可读性:这两个关键字之间只有很小的区别,setVisible()
并且setInvisible()
在滚动浏览 100 行代码时很容易被误读。
语义:拥有 2 个不同的setXXX()和setYYY()函数意味着存在 2 个不同的属性。虽然您会知道两者在内部映射到相同的位置,但这对于您的库/API 新手来说可能并不明显。
逻辑:除了设置功能外,您还将实施相应的getVisible()
和getInvisible()
良好的措施。像下面这样的代码片段肯定会引起足够的混乱。
setVisible()
...
getInvisible()
(wait, what??)
setInVisible()
...
getVisible()
(whats the state now??)
我知道show
,hide
有时在这种情况下,尤其是在 Windows 上。
我喜欢它强调它不是一个纯粹的 getter 和 setter,而是更多的代码来实际显示或隐藏窗口。尽管这仍然“只是”更改状态,但可能不会期望纯 setter 具有大量运行时成本。
不过,出于 TheCodeArtist 已经指出的原因,我不推荐仅用于阅读或更改标志。