더북(TheBook)

3.4.4 리팩토링 제안

클래스에 여러 책임이 있으면 응집력은 떨어질 것이다. 하지만 논리적인 무리를 형성하는 메서드와 필드를 찾을 때가 있다. 이런 논리적인 무리에는 ‘클래스 추출’ 리팩토링을 적용할 수 있다. 특히 다면적인 추상화 악취가 있는 기존 클래스에서 새로운 클래스를 생성할 수 있으며, 관련이 있는 메서드와 필드는 새로운 클래스로 옮겨 갈 수 있다.

맥락에 따라 추출된 클래스는 원본 클래스에서만 직접 사용하거나 원본 클래스의 클라이언트가 사용할 수 있음에 주목하자(그림 3.11 참조).

 

▲ 그림 3.11 다면적인 추상화를 위한 ‘클래스 추출’ 리팩토링

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