【发布时间】:2015-07-15 10:19:37
【问题描述】:
我知道检查和更改布尔变量 X 值的方法的“标准”名称是 getX()、isX() 和 setX()。
对于返回值并在返回值但仅在第一次返回值后更改它的方法是否有标准名称(即我不能使用toggleX(),因为它只会在第一次切换)?我想要一个只在第一次调用时才返回 true 的方法,所以类似于:
public boolean isFirstExecution() {
if (mIsFirstExecution) {
mIsFirstExecution = false;
return true;
} else {
return mIsFirstExecution;
}
}
问题在于,我认为使用名为 isX() 的方法更改变量的值可能会令人困惑。
【问题讨论】:
-
你能再发一个例子来说明你的意思吗?您发布的 isFirstExecution 几乎可以这样,但如果您的语言支持,您应该使用方法内部的静态变量。 (下面继续)
-
(续)特别是,一般来说,“名为 isX() 的方法更改变量的值”没有任何问题。如果方法的名称必须解释方法所做的所有内部操作,则您必须使用它们的整个源代码作为它们的名称。名称必须表达的是该方法在对其用户重要的抽象级别上所做的事情;如果方法需要修改变量以实现其名称抽象描述的内容,那么调用该方法的人无关紧要。
-
是的,我想我的问题是我没有意识到调用者对内部机制一无所知,所以幕后发生的任何事情都是无关紧要的(甚至可能没有变量第一名!)。如果您将此作为答案发布,我会将其标记为已接受:)
-
嗯,谢谢,但这并不能真正回答您发布的字面问题,我至少要对其进行一些更改,我可以这样。如果需要,请对评论进行投票:)
标签: language-agnostic naming-conventions