设计模式-模板方法模式

发布于:

#设计模式-模板方法模式

模板方法模式是一种基于继承的设计模式,分为抽象父类和具体的实现子类。
抽象父类一般包含一些公共方法及子类所有方法的执行顺序。 子类继承父类,可以可选地重写父类的方法
常见的模板方法的应用如 Vue 的生命周期,一个组件实例化后可以选择性的重写抽象组件父类的生命周期,而父类约定好了不同生命周期的执行顺序。

#组件生命周期

组件的生命周期就是一种模板方法模式的应用
模板方法中可以定义好生命周期的执行顺序
子类可以按需重写生命周期钩子方法
js
class Component { lifecycle() { this.beforeMount() this.render() this.mounted() } beforeMount() {} render() {} mounted() {} }

#模板方法的优缺点

优点
  1. 子类可以选择重写父类的方法,定制型强
  2. 公共逻辑封装在父类可以提高代码复用性
  3. 具体实现在子类,执行顺序在父类,代码结构清晰
缺点
  1. 约束性强,父类约定好的顺序,子类难以修改