盒子
盒子
文章目录
  1. 模板方法模式:
    1. 模板方法模式优点
    2. 使用场景

设计模式-js中的模板方法模式

模板方法模式:

(Template Method),父类中定义一组操作算法骨架,而将一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤。

模板方法模式是变成中经常用到的模式, 非常简单, AbstractClass叫抽象模板,其方法分为3类:

  1. 抽象方法: 父类中只声明但不加以实现, 而是定义好规范, 然后有他的子类去实现.
  2. 模板方法: 由抽象类声明并加以实现.一般来说, 模板方法调用抽象方法来完成的主要逻辑功能, 并且模板方法打多会定义为final类型, 指名主要的逻辑功能在子类中不能被重写.
  3. 钩子方法: 又抽象类声明并加以实现. 但是子类可以去扩展, 子类可以通过扩展钩子方法来影响模板方法的逻辑

实现累用来实现细节. 抽象类中的模板方法正是通过实现类扩展的方法来王成业务逻辑

模板方法模式优点

  1. 容易扩展. 一般来说,抽象类中的模版方法是不易反生改变的部分,而抽象方法是容易反生变化的部分,因此通过增加实现类一般可以很容易实现功能的扩展,符合开闭原则。
  2. 便于维护。对于模版方法模式来说,正是由于他们的主要逻辑相同,才使用了模版方法。

使用场景

在多个子类拥有相同的方法,并且这些方法逻辑相同时,可以考虑使用模版方法模式。在程序的主框架相同,细节不同的场合下,也比较适合使用这种模式。