에 따르면 이 동작을 결정하는 부울 매개 변수를 사용하는 것이 잘못인가? 부울 매개 변수를 사용하여 동작을 결정하지 않는 것이 중요하다는 것을 알고 있습니다.
원본 버전
public void setState(boolean flag){
if(flag){
a();
}else{
b();
}
c();
}
새로운 버전:
public void setStateTrue(){
a();
c();
}
public void setStateFalse(){
b();
c();
}
그러나 부울 매개 변수가 동작 대신 값을 결정하는 데 사용되는 경우는 어떻습니까? 예 :
public void setHint(boolean isHintOn){
this.layer1.visible=isHintOn;
this.layer2.visible=!isHintOn;
this.layer3.visible=isHintOn;
}
isHintOn 플래그를 제거하고 두 가지 별도의 함수를 만들려고합니다.
public void setHintOn(){
this.layer1.visible=true;
this.layer2.visible=false;
this.layer3.visible=true;
}
public void setHintOff(){
this.layer1.visible=false;
this.layer2.visible=true;
this.layer3.visible=false;
}
그러나 수정 된 버전은 다음과 같은 이유로 유지 관리가 쉽지 않습니다.
원래 버전보다 더 많은 코드가 있습니다.
layer2의 가시성이 힌트 옵션과 반대임을 명확하게 보여줄 수는 없습니다.
새 레이어 (예 : layer4)가 추가되면 추가해야합니다
this.layer4.visible=false;
과
this.layer4.visible=true;
setHintOn () 및 setHintOff ()에 별도로
따라서 내 질문은 부울 매개 변수를 사용하여 값을 결정하는 데만 동작이 아닌 경우 (예 : 해당 매개 변수에 if-else가 아닌 경우) 해당 부울 매개 변수를 제거하는 것이 여전히 권장됩니까?
setHint(boolean isHintOn)
A와 개인 방법, 공공 추가 setHintOn
하고 setHintOff
각각 호출 방법 setHint(true)
과 setHint(false)
.
setHint(true|false)
. 감자 포타 토. 적어도 setHint
and 같은 것을 사용하십시오 unsetHint
.
is
처음에 씁니다 . isValid
그렇다면 왜 두 단어로 바꾸어야합니까? 게다가, "보다 자연스러운"은 보는 사람의 눈에 있습니다. 영어 문장으로 발음하고 싶다면, "힌트"가 들어간 "힌트가있는 경우"를 갖는 것이 더 자연 스러울 것입니다.