Eg.
boolean isCurrent = false;
Как вы называете его получателем и сеттер?
Eg.
boolean isCurrent = false;
Как вы называете его получателем и сеттер?
Предположим, что у вас есть
boolean active;
Аксессуар будет
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
См. также
http://geosoft.no/development/javastyle.html#Specific
Префикс
is
должен использоваться для логических переменных и методов.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Это соглашение об именах для логических методов и переменных, используемых Sun для базовых пакетов Java. Использование префикса is решает общую проблему выбора плохих логических имен, таких как status или flag. isStatus или isFlag просто не подходят, и программист вынужден выбирать более значимые имена.
Методы установки для логических переменных должны иметь префикс установки как в:
void setFound(boolean isFound);
Существует несколько альтернатив префиксу is, который лучше подходит в некоторых ситуациях. Эти префиксы имеют, могут и должны:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
Для поля с именем isCurrent
правильное присвоение геттера/сеттера равно setCurrent()
/isCurrent()
(по крайней мере, что думает Eclipse), что очень сбивает с толку и может быть прослежено до основной проблемы:
В первую очередь ваше поле не должно называться isCurrent
.. Является ли глагол и глаголы неуместными для представления состояния объекта. Вместо этого используйте прилагательное, и ваши имена получателя/сеттера будут иметь смысл:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
I верить, было бы:
void setCurrent(boolean current)
boolean isCurrent()
Возможно, пришло время начать пересмотр этого ответа? Лично я проголосовал бы за setActive()
и unsetActive()
(альтернативы могут быть setUnActive()
, notActive()
, disable()
и т.д. В зависимости от контекста), поскольку "setActive" подразумевает, что вы активируете его всегда, т. Это своего рода счетчик, интуитивный, чтобы сказать "setActive", но фактически удалить активное состояние.
Другая проблема заключается в том, что вы не можете прослушивать специфическое событие SetActive в режиме CQRS, вам нужно будет прослушать "setActiveEvent" и определить внутри этого прослушивателя, на самом деле он активен или нет. Или, конечно, определить, какое событие вызывать при вызове setActive()
, но затем идет против принципа "Разделение проблем".
Хорошо читать об этом - статья FlagArgument Мартина Фаулера: http://martinfowler.com/bliki/FlagArgument.html
Однако я исхожу из фона PHP и вижу, что эта тенденция все больше принимается. Не уверен, насколько это связано с развитием Java.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
Как сеттер, как насчет:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
или же
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Я не уверен, имеют ли эти названия смысл для носителей английского языка.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Для булевых вы также можете использовать
public boolean isCurrent()
Только во избежание путаницы; Я рекомендую использовать
// Setter method for isCurrent
public void setIsCurrent(boolean isCurrent) {
this.isCurrent = isCurrent;
}
// Getter method for isCurrent
public boolean getIsCurrent() {
return isCurrent;
}