더북(TheBook)

3.2.3 예제

예제 1

대규모 재정 애플리케이션을 생각해 보자. 이 애플리케이션은 CreateReport, CopyReport, DisplayReport와 같은 이름이 붙은 클래스를 사용하여 보고서 생성 기능을 처리한다. 클래스마다 각각 create, copy, display로 명명된 메서드 정의가 하나씩만 있고 명령 추상화 악취로 고통받는다. 보고서 이름처럼 보고서와 관련 있는 데이터 항목과 보고서에 출력할 필요가 있는 데이터 구성요소, 보고서 유형은 Report로 명명된 ‘데이터 클래스’에 포함되어 있다.

이런 악취는 클래스 수만 늘리고(여기서는 클래스를 하나만 사용할 수도 있으나 최소한 네 개를 사용했다), 응집력 있는 메서드를 불필요하게 분리하여 개발이나 유지보수 과정과 관련된 복잡도를 높인다(그림 3.5 참조).

 

▲ 그림 3.5 보고서 생성 기능을 위한 클래스 다이어그램(예제 1)

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