IT이야기

부울 필드의 경우 getter/setter 명명 규칙은 무엇입니까?

cyworld 2022. 7. 12. 21:43
반응형

부울 필드의 경우 getter/setter 명명 규칙은 무엇입니까?

예.

boolean isCurrent = false;

그것의 getter와 setter를 뭐라고 부릅니까?

예를 들어

boolean active;

접근자 방법은 다음과 같습니다.

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

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

참고 항목

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

  1. is 부울 변수 및 메서드에는 prefix를 사용해야 합니다.

    isSet,isVisible,isFinished,isFound,isOpen

는 Java 코어 패키지에 Sun이 사용하는 부울 메서드 및 변수의 명명 규칙입니다.is 프리픽스를 사용하면 상태나 플래그와 같은 부울 이름이 잘못 선택되는 일반적인 문제가 해결됩니다.isStatus 또는 isFlag는 단순히 적합하지 않으며 프로그래머는 더 의미 있는 이름을 선택해야 합니다.

부울 변수의 setter 메서드는 다음과 같이 프리픽스를 설정해야 합니다.

void setFound(boolean isFound);

상황에 따라서는 is 프리픽스의 몇 가지 대체 방법이 있습니다.프리픽스는 다음과 같습니다.

boolean hasLicense(); 
boolean canEvaluate(); 
boolean shouldAbort = false;

필드 이름isCurrent, 올바른 getter/setter 이름은 다음과 같습니다.setCurrent()/isCurrent()(적어도 Eclipse는 그렇게 생각한다) 이는 매우 혼란스럽고 주요 문제로 거슬러 올라갈 수 있다.

애초에 자신의 필드를 호출해서는 안 됩니다.Is는 동사이며 동사는 객체의 상태를 나타내는 데 적합하지 않습니다.대신 형용사를 사용하면 갑자기 getter/setter 이름이 더 의미가 있습니다.

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"라고 말하는 것은 직관적이지만 실제로는 활성 상태를 제거합니다.

또 다른 문제는 CQRS 방식으로는 SetActive 이벤트를 특별히 청취할 수 없기 때문에 'setActiveEvent'를 청취하여 청취자 웨터가 실제로 활성화되었는지 여부를 판단해야 합니다.또는 물론 전화를 걸 때 어떤 이벤트를 호출할지 결정합니다.setActive()하지만 이는 '관심분리' 원칙에 어긋난다.

이에 대한 좋은 읽을거리는 Martin Fowler의 FlagArgument 기사 http://martinfowler.com/bliki/FlagArgument.html입니다.

그러나 저는 PHP의 배경을 가지고 있기 때문에, 이 경향이 점점 더 채용되고 있는 것을 알 수 있습니다.자바 개발로 얼마나 오래 버틸 수 있을지 모르겠다.

다른 모든 getter와 마찬가지로 get{varname}이어야 합니다."is"로 변경해도 잘못된 변수 이름이 중지되는 것이 아니라 불필요한 규칙이 하나 더 생성됩니다.

프로그램 생성 코드 또는 반사 도출을 고려하십시오.

이것은 쓸모없는 규약으로 기회가 닿는 대로 폐기해야 합니다.

데이터형 부울의 setter/getter 메서드와 사이드 a 클래스(pojo/entity의 경우)의 부울 메서드 사이에는 표시 가능한 포인트가 있습니다.

  • Boolean과 Boolean 모두 setXX()로 해야 하는데 getter 메서드는 각각 getXX()isXX()입니다.

예:

(a) 속성이 부울로 정의되어 있는 경우

private Boolean active;

세터/게터 방법

public Boolean getCheck() {   // getXXX()
    return check;
}

public void setCheck(Boolean check) {
    this.check = check;
}

(b) 속성이 부울로 정의되어 있는 경우

private boolean check;

세터/게터 방법

   public boolean isCheck() {   // isXXX()
        return check;
    }
    public void setCheck(boolean check) {
        this.check = check;
    }
private boolean current;

public void setCurrent(boolean current){
    this.current=current;
}

public boolean hasCurrent(){
    return this.current;
}
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;
}

영어 원어민에게 이 이름 짓기가 말이 되는지 모르겠다.

언급URL : https://stackoverflow.com/questions/5322648/for-a-boolean-field-what-is-the-naming-convention-for-its-getter-setter

반응형