더북(TheBook)

메서드 쌍 대신 단일 메서드 사용

때때로 API는 불 인수Boolean Argument를 받는 메서드로 대칭적인 메서드를 대체하는 방식을 선택할 수 있다(접근자에 접두어인 ‘get’, ‘IS’, ‘set’을 붙이도록 요구하는 자바빈즈와 같은 특정 명명 관례를 강제하는 경우와 반대). 예를 들어, java.awt.MenuItem이나 java.awt.Component와 같은 클래스는 원래 disable()enable() 메서드를 지원했다. 두 메서드는 앞으로 사라질 것이므로 setEnabled(boolean) 메서드로 대체한다. 마찬가지로 java.awt.Component에서 show()hide() 메서드도 조만간 사라질 것이므로, setVisible(boolean) 메서드로 대체한다. 이 클래스를 불완전한 추상화로 표시하고 싶은 욕구가 생길 수도 있는데, 대칭적인 메서드(예 : 각각 getEnabled()getVisible())가 없기 때문이다. 하지만 대응하는 getter 메서드(setter 메소드는 불 인수를 요구한다)가 필요하지 않기 때문에 이 클래스에는 불완전한 추상화 악취가 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.