더북(TheBook)

일관성과 완결성 보증 : 추상화는 책임을 완벽하게 지원해야 한다. 예를 들어, 콤보 상자를 표현하는 클래스를 생각해 보자. 이 클래스가 특정 엘리먼트를 비활성화하거나 감추는 기능을 제공한다면, 이런 엘리먼트를 활성화하거나 보여 주는 옵션 역시 제공해야 한다. 몇몇 메서드는 제공하고 몇몇 메서드는 제공하지 않은 채 남겨 두면 추상화는 일관성이 없어 불완전한 상태로 남을 것이다.

의미 있는 단일 책임 할당 : 각 추상화마다 특별한 책임을 지도록 보증하자. 예를 들어, 이미지를 표현하는 클래스는 이미지 표현 형식을 다른 형식으로 변환하는 메서드를 중복 정의해서는 안 된다. 그뿐만 아니라 상수 π 값을 담는 견본 틀로 봉사하는 이름이 PI인 클래스를 생성하는 관례는 이치에 맞지 않다.

중복 방지 : 각 추상화가 구현은 물론 이름까지 설계에서 한 번만 등장하도록 보증하자. 예를 들어, GUI에서 목록 제어를 설계하거나, 연결 리스트 자료 구조를 만들거나, 아니면 할 일 목록을 유지하려고 List 클래스를 생성해야 할지도 모른다. 하지만 이 모든 추상화 이름을 List로 명명하면 해당 설계의 사용자는 혼란스러워 할 것이다. 마찬가지로 스케줄러 구현 목적으로 우선순위 큐 자료 구조를 위한 코드를 복사하는 구현 중복은 동일 코드를 두 벌로 유지하는 데 추가적인 노력을 요구할 것이다.

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