设计模式学习篇-模板模式

58 阅读1分钟

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();