在方法名称中写“ Not”是否不好?

时间:2018-10-07 13:58:24

标签: oop

Foo类具有方法isUpToDate()。该方法在应用程序中被多次调用,并且在调用时总是被反转。即if(!foo.isUpToDate()) { ... }。如果将方法重构为isNotUpToDate()(以避免在每次调用时都使用!),这是好事还是坏事?

编辑:为避免仅以意见为基础,有人可以分享对某些可贵来源的引用吗?

3 个答案:

答案 0 :(得分:2)

我通常建议不要在函数名称中使用负号。这是因为双重否定会变得难以阅读。

如果在函数名称中使用 Not ,则可以通过以下方法检查某些内容是否最新。

!foo.NotUpToDate(...)

因此,通过尝试避免否定,您为双重否定打开了大门。这很不好。

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

答案 1 :(得分:2)

就像OlivierMelançon所说,由于双重否定,不建议在函数名称中使用Not。如果仅使用倒置形式,则通常可以使用该函数的更好的名称。

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

答案 2 :(得分:-1)

不,不是。您应该以一种更加理解和自我解释的方式编写代码,这样,当别人(甚至一段时间后甚至自己)只是看一下您的代码(即使不阅读代码文档)时,他也会理解foo.isUpToDate()确定是否该类是否更新。使用!没什么不好,我想isUptoDate的混乱程度要比isNotUpToDate少,但这取决于您。