Например.
boolean isCurrent = false;
Что вы называете его геттером и сеттером?
Например.
boolean isCurrent = false;
Что вы называете его геттером и сеттером?
Ответы:
Предположим, у вас есть
boolean active;
Метод доступа будет
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Смотрите также
hasCustomName
, теперь , что я должен назвать для его геттерных и инкубационных метод? Это setHasCustomName[setter]
и hasCustomName[getter]
хорошо?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
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;
hasData
, как будет выглядеть сеттер? Скорее всего, setData(bool hasData)
выглядит ужасно неправильно для меня ...
has
, can
, should
префиксы не являются частью спецификации. Ссылка на спецификацию JavaBeans 1.01 раздел 8.3.
boolean isIsCurrent(){...}
противном случае, структура, используемая для десериализации объекта, жаловалась getter not found for property isCurrent
.
Для именованного поля isCurrent
правильное именование получателя / установщика - это setCurrent()
/ isCurrent()
(по крайней мере, так думает Eclipse), что сильно сбивает с толку и может быть связано с основной проблемой:
Ваше поле не должно называться isCurrent
в первую очередь. Is - это глагол, а глаголы не подходят для представления состояния объекта. Вместо этого используйте прилагательное, и вдруг ваши имена получателей / установщиков станут более понятными:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
get
префикс при получении Boolean
vs is
дляboolean
Я верю, что это будет:
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;
}
has
используется для BO или такого сервиса с некоторой обработкой, в то время как для POJO это так is
. и, пожалуйста, добавьте описание вашего ответа.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Для логических значений вы также можете использовать
public boolean isCurrent()
Как сеттер, как насчет:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
или
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Я не уверен, имеют ли эти названия смысл для носителей английского языка.