서브클래스에 같은 결과를 반환하는 메서드를 동일하게 가지고 있다면 해당 메서드들을 슈퍼클래스로 옮기는 기법
class Employee{...}
class Salesman extends Employee{
get name() {...}
}
class Engineer extends Employee{
get name() {...}
}
class Employee{
get name(){...}
}
class Salesman extends Employee{...}
class Engineer extends Employee{...}
클래스가 특정 인스턴스에서만 사용되는 기능을 가지고 있다면 해당 기능들로 이루어진 서브 클래스를 생성하는 기법
function createEmployee(name, type){
return new Employee(name, type);
}
function createEmployee(name, type){
switch(type){
case "engineer" : return new Engineer(name);
case "salesman" : return new Salesman(name);
case "manager" : return new Manager(name);
}
}
📑 References
https://chchoing88.github.io/ho_blog/generalization-processing/