더북(TheBook)

예제 3(고아 추상화)

저자 중 한 명은 IDEIntegrated Development Environment(통합 개발 환경)로 통합된 시각화 도구 개발에 참여했다. 이 도구는 null 포인터 접근, 0으로 나누기 등 잠재적인 버그의 데이터 흐름을 시각적으로 보여 준다. 도구 개발 과정에서 설계자는 도구 결과를 보고서로 생성하는 기능이 유용하다고 생각했다. 설계자는 보고서를 PDF와 HTML 버전으로 생성할 계획을 세웠으므로, 그림 3.12와 같은 클래스 계층을 만들었다. 세 개 모두 추상 클래스이며, 내부에 코드가 많지 않다. 모두 향후 구현을 목적으로 한 견본 틀이었기 때문이다. 도구의 주요 목표가 데이터 흐름의 시각화였기에 개발자들은 제어 흐름 경로가 결함을 어떻게 일으키는지 볼 수 있었고, 보고서 생성은 크게 중요하게 생각하지 않았다. 따라서 보고서 생성은 유용한 기능처럼 보였지만, 구현하지 않았다. 이런 이유로 클래스 세 개(그림 3.12 참조)는 모두 미활용 추상화다. 계층(그림 3.12 참조)은 불필요한 계층으로 고통받고 있는 것처럼 보일 수도 있음에 주목하자. 하지만 불필요한 계층은 계층에 있는 타입을 활용하나, 여기서는 그렇지 않다.

 

▲ 그림 3.12 미활용 보고서 생성 클래스(예제 3)

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