Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop “写”是一种坏习惯吗;不是";在方法名中?_Oop - Fatal编程技术网

Oop “写”是一种坏习惯吗;不是";在方法名中?

Oop “写”是一种坏习惯吗;不是";在方法名中?,oop,Oop,让类Foo具有方法isupdate()。该方法在应用程序中被多次调用,当被调用时,总是反向调用。例如,如果(!foo.isupdate()){…}。如果该方法被重构为isnotupdate()(以避免每次调用都使用!),这是一种好的做法还是一种坏的做法 编辑:为了避免仅以意见为基础,是否有人可以分享某个值得尊敬的来源的参考?不,不是。您应该以一种更加理解和自我解释的方式编写代码,这样当其他人(甚至是您自己)只需查看您的代码(即使没有阅读代码文档)时,他就会明白foo.isUpdate()决定类是

让类
Foo
具有方法
isupdate()
。该方法在应用程序中被多次调用,当被调用时,总是反向调用。例如,
如果(!foo.isupdate()){…}
。如果该方法被重构为
isnotupdate()
(以避免每次调用都使用
),这是一种好的做法还是一种坏的做法


编辑:为了避免仅以意见为基础,是否有人可以分享某个值得尊敬的来源的参考?

不,不是。您应该以一种更加理解和自我解释的方式编写代码,这样当其他人(甚至是您自己)只需查看您的代码(即使没有阅读代码文档)时,他就会明白foo.isUpdate()决定类是否更新。使用!这不是什么坏事,我想IsUpdate比IsNotUpdate更容易混淆,但这取决于您。

我通常建议不要在函数名中使用否定。这是因为双重否定可能变得难以理解

如果您在函数名中使用Not,下面是如何检查某些内容是否实际是最新的

!foo.NotUpToDate(...)
因此,通过努力避免否定,你打开了双重否定的大门;这很糟糕


为避免双重否定,请编写检查肯定语句的函数和方法,并使用您的语言not运算符。

如Olivier Melançon所说,由于双重否定,不建议在函数名中使用not。如果只使用倒装形式,通常会有更好的函数名


在您的情况下,我建议使用
NeedsUpdate(…)
IsDirty(…)

我更喜欢
操作符(即方法名称中的no
Not
),如果只是因为将来某个时候您可能需要另一个版本,并且如果(!foo.isnotupdate())看起来很愚蠢,那么
操作符就可以称之为
isStale()
,我相信“Not”比“notupdate()”更好,可读性也更好。顺便说一下,ApacheCommons使用“not”很多()。JDK对象类也使用它(非空)。