1.概念
模板模式,全称是模板方法设计模式.模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。
2.为什么使用模板模式
- 解决在多个子类中重复实现相同的方法的问题,通过将通用方法抽象到父类中来避免代码重复。
3.代码实现
平时我们经常在不知不觉中就使用了这个模式。应用还是非常广泛的,下面举个在游戏中怪物攻击的例子
abstract class Monster {
abstract attack(): void;
abstract defend(): void;
abstract move(): void;
step(){
this.attack();
this.defend();
this.move();
}
}
class Boss extends Monster {
attack(): void {
console.log("boss attack");
}
defend(): void {
console.log("boss defend");
}
move(): void {
console.log("boss move");
}
}
class Normal extends Monster {
attack(): void {
console.log("normal attack");
}
defend(): void {
console.log("normal defend");
}
move(): void {
console.log("normal move");
}
}
let boss = new Boss();
boss.step();
let normal = new Normal();
normal.step();