더북(TheBook)

3.7 중복된 추상화

둘 이상의 추상화가 이름이 같거나 구현이 동일하거나 이름이 같으면서 구현도 동일할 때 이런 악취가 발생한다. 이런 악취는 다음 두 가지 형태로 드러난다.

 

동일한 이름 : 둘 이상의 추상화 이름이 동일한 경우다. 두 추상화의 이름은 우연히 동일할 수도 있으므로 유사한 행동 양식을 공유하는지 분석할 필요가 있다. 만일 기반 행동 양식이 서로 관련이 없으면, 주요 관심사는 단순히 동일한 이름이다. 동일한 이름이 이해 가능성에 영향을 미치는 이유는 뚜렷이 다른 두 추상화의 이름이 똑같기 때문이다. 하지만 두 추상화의 기반 행동 양식조차 같다면 더 심각한 관심사가 되므로, 중복된 추상화의 ‘동일한 구현’ 형태를 의미할 수 있다.

동일한 구현 : 둘 이상의 추상화에 의미상으로 동일한 멤버 정의가 있는 경우다. 하지만 이 구현에서 공통 구성 요소를 포착하고 설계에 활용하지 않았다. 이런 추상화에서 메서드의 구현은 유사하나 서식은 다를 수 있다. 추가적으로 상속 계층 내부의 형제자매에서 발생한 동일한 구현은 팩토링되지 않은 계층 악취를 의미할지도 모른다(6.3절 참조).

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