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