Для логического поля, каково соглашение об именовании для его геттера / сеттера?



например.

boolean isCurrent = false;

Как вы называете его геттер и сеттер?

246   9  

9 ответов:

предположим, что у вас есть

boolean active;

метод доступа будет

public boolean isActive(){return this.active;}

public void setActive(boolean active){this.active = active;}

См. Также

http://geosoft.no/development/javastyle.html#Specific

  1. и префикс должен использоваться для булевых переменных и методов.

    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;
}
    Ничего не найдено.

Добавить ответ:
Отменить.