더북(TheBook)

3.2.4 리팩토링 제안

명령 추상화 내에 있는 메서드를 담을 수 있는 적절한 추상화를 찾거나 생성해야 명령 추상화 설계 악취를 리팩토링할 수 있다. 또 동일 추상화 내에 메서드가 요구하는 데이터를 캡슐화해서 응집력은 높이고 결합력은 낮춰야 한다.

 

예제 1을 위한 리팩토링 제안

재정 애플리케이션의 보고서 생성 기능을 위해 명령 추상화로 고통받는 각 클래스에 속한 메서드를 Report 클래스 자체로 옮기는 리팩토링 방식을 제안한다(그림 3.7 참조). 모든 보고서와 관련된 연산을 Report 클래스로 옮기면, Report 클래스를 적절한 ‘추상화’로 만들고 명령 추상화 악취도 제거한다. 이 설계를 따르면 더 깔끔하고 덜 복잡하다.

 

▲ 그림 3.7 보고서 생성 기능을 위한 리팩토링 제안(예제 1)

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