예 :
boolean isCurrent = false;
게터와 세터의 이름은 무엇입니까?
예 :
boolean isCurrent = false;
게터와 세터의 이름은 무엇입니까?
답변:
당신이 가지고 있다고 가정
boolean active;
접근 자 방법은
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
또한보십시오
hasCustomName
. 이제 getter 및 setter 메소드 의 이름을 어떻게 지정해야 합니까? 인가 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
이것은 Java 핵심 패키지에 대해 Sun에서 사용하는 부울 메소드 및 변수의 이름 지정 규칙입니다 . is 접두사를 사용하면 status 또는 flag와 같은 잘못된 부울 이름을 선택하는 일반적인 문제가 해결됩니다. isStatus 또는 isFlag는 적합하지 않으며 프로그래머는보다 의미있는 이름을 선택해야합니다.
부울 변수의 세터 메소드에는 다음과 같이 접 두부가 설정되어 있어야합니다.
void setFound(boolean isFound);
일부 상황에서 더 적합한 is 접두사에 대한 몇 가지 대안이 있습니다. 이들은 접두사를 가지고 있고, 할 수 있고,해야합니다.
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasData
setter는 어떻게 생겼습니까? 가장 확실하게, setData(bool hasData)
나에게는 끔찍하게 잘못 보인다 ...
has
, can
, should
접두사 사양의 일부가 아닙니다. JavaBeans 사양 1.01 섹션 8.3을 참조 하십시오.
boolean isIsCurrent(){...}
는 객체를 직렬화 해제하는 데 사용 된 프레임 워크 를 사용해야했기 때문에 불평했습니다 getter not found for property isCurrent
.
이라는 필드 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;
}
get
를 검색 할 때 접두사를 Boolean
대 is
A의boolean
나는 그것이 될 것이라고 믿습니다 .
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 배경에서 왔으며이 추세가 점점 더 많이 채택되고 있음을 알 수 있습니다. 이것이 Java 개발에 얼마나 많은 영향을 미치는지 확실하지 않습니다.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
has
POJO가있는 동안 BO 또는 일부 처리가있는 서비스에 사용 되었다고 생각 합니다 is
. 답변에 대한 설명을 추가하십시오.