Skip to content

Latest commit

 

History

History
24 lines (15 loc) · 720 Bytes

8..md

File metadata and controls

24 lines (15 loc) · 720 Bytes

8. 명령과 조회를 분리하라!

함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.

public boolean set(String attribute, String value);

이 함수는 이름이 attrribute인 속성을 찾아 값을 value로 설정한 후 성공하면 true를 반환하고 실패하면 false를 반환한다.

if (set("username", "unclebob"))...

독자 입장에서 코드를 읽어보자. "username 속성이 unclebob으로 설정되어 있다면 ..."으로 읽힌다. 이 코드는 다음과 같이 명령과 조회를 분리해 혼란을 제거할 수 있다.

if (attributeExists("username")) {
  setAttribute("username", "unclebob");
}