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

Function 将布尔值传递给函数,而不是创建两个函数,function,boolean,Function,Boolean,我有一个类似于下一个的函数,例如: public void setVisible(bool visible){ ... } 在这种情况下,创建两个公共函数setVisible和setInvisible不是更好吗 也许可以在内部创建一个私有函数以避免重复代码…我认为这是一个很大的问题,原因如下: 可读性:两个关键字setVisible()和setVisible()之间只有很小的区别,在滚动100行代码时很容易误读 语义:具有两个不同的setXXX()和setYYY()函数意味着存在两个不同的属性

我有一个类似于下一个的函数,例如:

public void setVisible(bool visible){ ... }
在这种情况下,创建两个公共函数setVisible和setInvisible不是更好吗


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

我认为这是一个很大的问题,原因如下:

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

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

逻辑:除了设置函数外,您还将实现相应的
getVisible()
getVisible()
,以便更好地度量。使用下面这样的代码片段肯定会引起足够的混乱

setVisible()  
...  
getInvisible()  

(wait, what??)

setInVisible()  
...  
getVisible()

(whats the state now??)

由于以下原因,我认为这是一个很大的否定:

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

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

逻辑:除了设置函数外,您还将实现相应的
getVisible()
getVisible()
,以便更好地度量。使用下面这样的代码片段肯定会引起足够的混乱

setVisible()  
...  
getInvisible()  

(wait, what??)

setInVisible()  
...  
getVisible()

(whats the state now??)

我知道在这种情况下,
show
hide
有时会出现,尤其是在windows中

我喜欢它强调它不是一个纯粹的getter和setter,而是更多的代码来实际显示或隐藏窗口。即使这仍然是“仅仅”更改状态,但可能会有很多纯setter不需要的运行时成本


不过,仅仅为了阅读或更改某个标志,我不建议使用它,因为代码设计师已经指出了原因。

我知道在这种情况下,有时会显示
隐藏
,尤其是在windows中

我喜欢它强调它不是一个纯粹的getter和setter,而是更多的代码来实际显示或隐藏窗口。即使这仍然是“仅仅”更改状态,但可能会有很多纯setter不需要的运行时成本


仅仅是为了阅读或更改一个标志,我不推荐它,因为编码员已经指出了原因。

可读性?不是真的。在我看到setVisible和setInvisible之间的区别之前,我读了两遍。有了setter和getter,如果它们是boolean,你会建议也改变它们吗?这真的没有意义吗?可读性?不是真的。在我看到setVisible和setInvisible之间的区别之前,我读了两遍。有了setter和getter,如果它们是boolean,你会建议也改变它们吗?这真的没有意义吗?