예 :
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
이것은 Java 핵심 패키지에 대해 Sun에서 사용하는 부울 메소드 및 변수의 이름 지정 규칙입니다
. is 접두사를 사용하면 status 또는 flag와 같은 잘못된 부울 이름을 선택하는 일반적인 문제가 해결됩니다. isStatus 또는 isFlag는 적합하지 않으며 프로그래머는보다 의미있는 이름을 선택해야합니다.부울 변수의 세터 메소드에는 다음과 같이 접 두부가 설정되어 있어야합니다.
void setFound(boolean isFound);
일부 상황에서 더 적합한 is 접두사에 대한 몇 가지 대안이 있습니다. 이들은 접두사를 가지고 있고, 할 수 있고,해야합니다.
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
답변
이라는 필드 isCurrent
의 올바른 getter / setter 이름은 setCurrent()
/ isCurrent()
(적어도 Eclipse가 생각하는 것입니다)이며 매우 혼란스럽고 주요 문제로 다시 추적 할 수 있습니다.
isCurrent
먼저 필드를 호출하면 안됩니다 . Is 는 동사이며 동사는 객체의 상태를 나타내는 데 부적합합니다. 대신 형용사를 사용하면 갑자기 getter / setter 이름이 더 의미가 있습니다.
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
답변
답변
이 답변을 개정 할 때가 되었을까요? 개인적으로 나는 투표setActive()
와 unsetActive()
(대안이 될 수있다 setUnActive()
, notActive()
, disable()
“setActive”이후 등 상황에 따라) 의미 당신은 당신이하지 않는 모든 시간에서 활성화합니다. “setActive”라고 말하는 것은 직관적이지만 실제로는 활성 상태를 제거합니다.
또 다른 문제는 CQRS 방식으로 구체적으로 SetActive 이벤트를 수신 할 수 없으며, ‘setActiveEvent’를 수신하고 해당 리스너 내부에서 실제로 활성으로 설정되었는지 여부를 판별해야한다는 것입니다. 또는 전화 할 때 어떤 이벤트를 호출할지 결정 setActive()
하지만 문제 분리 원칙에 위배됩니다.
이에 대한 좋은 글은 Martin Fowler의 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 setCurrent(boolean val)
Getter: public boolean getCurrent()
부울의 경우 다음을 사용할 수도 있습니다
public boolean isCurrent()