상속을 이용한 템플릿 메소드 패턴 예제
다형성을 이용하여 load() 메소드 호출시 각각 자식의 _load() 메소드가 호출된다.
다형성 = 내적일관성 + 대체가능성
// 공통 부분
const Order = class {
#id;
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
load() {
const content = "[공통] 부모 > 자식변수 [content]";
this._load(content); // 위임 부분
}
_load(v) { throw "override"; } // HOOK
}
const ord1 = class extends Order {
constructor() {
super("자식 > 부모 [order1]");
}
_load(v) {
console.log(">> ord1");
console.log(this.getName());
console.log(v);
}
}
const ord2 = class extends Order {
constructor() {
super("자식 > 부모 [order2]");
}
_load(v) {
console.log(">> ord2");
console.log(this.getName());
console.log(v);
}
}
const o = new ord1();
o.load();
const o2 = new ord2();
o2.load();
'객체지향' 카테고리의 다른 글
템플릿 메소드(Template Method) 패턴 실제 적용 사례 - 디자인 패턴 (0) | 2024.08.23 |
---|---|
[헤드퍼스트 디자인패턴] 1. 전략패턴 (0) | 2022.03.29 |
객체지향 디자인 패턴 공부 순서 (0) | 2020.08.31 |
OOP Interface 를 왜 사용하는가 ? (0) | 2020.07.27 |