Open2
【デザインパターン】TemplateMethod パターンについて📝

TemplateMethod パターンについて📝

TypeScriptでTemplateMethod パターン📝
abstract class AbstractEventCloneLogic {
run(data: any) {
this.preProcess();
this.process(data); // 抽象メソッド(差分)
this.postProcess();
}
private preProcess() {
console.log('前処理(共通)');
}
protected abstract process(data: any): void; // 差し替える部分
private postProcess() {
console.log('後処理(共通)');
}
}
class EventNormalCloneLogic extends AbstractEventCloneLogic {
protected process(data: any) {
console.log('Template A', data);
}
}
class EventWebinarCloneLogic extends AbstractEventCloneLogic {
protected process(data: any) {
console.log('Template B', data);
}
}
// 処理の流れは共通で、部分的に差し替える
const template = new EventWebinarCloneLogic();
template.run('data');
// 前処理 → EventWebinarCloneLogic → 後処理