개요

특정 서브클래스에만 관련된 메서드는 슈퍼 클래스에서 제거하고 해당 서브클래스로 옮긴다.

리팩터링은 해당 기능을 제공하는 서브클래스에 대해 정확히 파악한 경우에 적용할 있다. 그렇지 않다면 조건부 로직을 다형성으로 바꿔야 한다.

 


class Employee{
    get quota{}
}
class Engineer extends Employee{}
class Salesperson extends Employee{}
class Employee{
}
class Engineer extends Employee{}
class Salesperson extends Employee{
    get quota{}
}

+ Recent posts