개요
특정 서브클래스에만 관련된 메서드는 슈퍼 클래스에서 제거하고 해당 서브클래스로 옮긴다.
이 리팩터링은 해당 기능을 제공하는 서브클래스에 대해 정확히 파악한 경우에 적용할 수 있다. 그렇지 않다면 조건부 로직을 다형성으로 바꿔야 한다.
class Employee{ get quota{} } class Engineer extends Employee{} class Salesperson extends Employee{} |
class Employee{ } class Engineer extends Employee{} class Salesperson extends Employee{ get quota{} } |
'IT책, 강의 > 리팩터링' 카테고리의 다른 글
12 - 상속 다루기 - 타입 코드를 서브클래스로 바꾸기 (0) | 2023.10.30 |
---|---|
12 - 상속 다루기 - 필드 내리기 (0) | 2023.10.29 |
12 - 상속 다루기 - 생성자 본문 올리기 (0) | 2023.10.27 |
12 - 상속 다루기 - 필드 올리기 (0) | 2023.10.26 |
12 - 상속 다루기 - 메서드 올리기 (0) | 2023.10.09 |