介绍
模版方法模式,父类定义一组操作算法骨架,而将一些实现延迟到子类中, 使得子类可以不改变父类的算法结构的同时,重新定义算法中的某些实现步骤。模版方法模式的关键时算法步骤的骨架和具体实现分离。
主要概念:
- AbstractClass: 抽象父类,把一些共用的方法提取出来,把可变的方法作为抽象类, 最重要的是把算法骨架抽象出来为模版方法。
- templateMethod: 模版方法,固定了希望执行的算法骨架。
- ConcreteClass: 子类,实现抽象父类中定义的抽象方法,调用继承的模版方法时,将执行模版方法中定义的算法流程。
ts 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| abstract class AbstractClass { operation1() { console.log('operation1'); }
abstract operation2(): void;
templatedMethod() { this.operation1(); this.operation2(); } }
class ConcreteClass extends AbstractClass { operation2() { console.log('operation2'); } }
const instance = new ConcreteClass(); instance.templatedMethod();
|