더북(TheBook)

3.7.4 리팩토링 제안

이 예제에서는 추상화 중 하나의 이름을 유일한 이름으로 바꾸는 리팩토링 방식을 제안한다.

중복된 추상화의 동일한 구현 형태에서는 구현이 동일하다면, 한쪽 구현은 제거할 수 있다. 구현이 조금 다르면, 중복된 추상화의 공통 구현을 공통 클래스로 팩토링할 수 있다. 이것은 기존 계층에 있는 슈퍼 타입이 되거나(6.3절 참조) 중복된 추상화가 ‘참조’ 또는 ‘사용할’ 수 있는 기존 또는 새로운 클래스가 될 수 있다.

 

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

Timer 클래스 예제에서는 주요 관심사가 동일한 이름이므로 이름을 바꿔 유일하게 만드는 리팩토링 방식을 제안한다. javax.swing.TimerActionEvent 타입의 객체를 실행하므로, ExecutionTimer 또는 EventTimer로 이름을 바꿀 수 있다. 마찬가지로 java.utilTimer 구현은 AlarmTimer로 이름을 바꿀 수 있다. java.util.Timer는 그대로 유지한다.

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