일반화

컴투루·2022년 4월 15일
0

📌 메서드 상향(Pull Up Method)

서브클래스에 같은 결과를 반환하는 메서드를 동일하게 가지고 있다면 해당 메서드들을 슈퍼클래스로 옮기는 기법

✅ 리팩토링 전의 소스

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{...}

📌 하위클래스 추출 (Extract Subclass)

클래스가 특정 인스턴스에서만 사용되는 기능을 가지고 있다면 해당 기능들로 이루어진 서브 클래스를 생성하는 기법

✅ 리팩토링 전의 소스

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/

profile
맘 먹으면 못할 게 없지

0개의 댓글