9 ответов:
предположим, что у вас есть
boolean active;метод доступа будет
public boolean isActive(){return this.active;} public void setActive(boolean active){this.active = active;}
См. Также
http://geosoft.no/development/javastyle.html#Specific
и префикс должен использоваться для булевых переменных и методов.
isSet, isVisible, isFinished, isFound, isOpen
Это соглашение об именовании для булевы методы и переменные, используемые Sun для пакетов ядра Java. использование префикса is решает общую проблему проблема выбора плохих булевых имен как статус или флаг. isStatus или isFlag просто не подходит, и программист вынужден выбирать больше осмысленное имя.
методы сеттера для булевых переменных должен быть установлен префикс, как в:
void setFound(boolean isFound); Есть несколько альтернатив ИС префикс, который лучше подходит в некоторых положения. Это имеет, может и следует приставки:
boolean hasLicense(); логическое 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; }
Я верить что будет:
void setCurrent(boolean current) boolean isCurrent()
может быть, пора начать пересматривать этот ответ? Лично я бы проголосовал за
setActive()иunsetActive()(альтернатив может бытьsetUnActive(),notActive(),disable()и т. д. в зависимости от контекста), так как "setActive" подразумевает, что вы активируете его в любое время, чего вы не делаете. это своего рода счетчик интуитивно понятный, чтобы сказать "setActive", но на самом деле удалить активное состояние.еще одна проблема заключается в том, что вы не можете слушать конкретно SetActive событие в способе CQRS, вам нужно будет слушать a 'setActiveEvent' и определить внутри этого слушателя wether был фактически установлен активным или нет. Или, конечно, определить, какое событие вызывать при вызове
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; }
Comments