#设计模式-模板方法模式
模板方法模式是一种基于继承的设计模式,分为抽象父类和具体的实现子类。
抽象父类一般包含一些公共方法及子类所有方法的执行顺序。
子类继承父类,可以可选地重写父类的方法
常见的模板方法的应用如 Vue 的生命周期,一个组件实例化后可以选择性的重写抽象组件父类的生命周期,而父类约定好了不同生命周期的执行顺序。
#组件生命周期
组件的生命周期就是一种模板方法模式的应用
模板方法中可以定义好生命周期的执行顺序
子类可以按需重写生命周期钩子方法
jsclass Component { lifecycle() { this.beforeMount() this.render() this.mounted() } beforeMount() {} render() {} mounted() {} }
#模板方法的优缺点
优点
- 子类可以选择重写父类的方法,定制型强
- 公共逻辑封装在父类可以提高代码复用性
- 具体实现在子类,执行顺序在父类,代码结构清晰
缺点
- 约束性强,父类约定好的顺序,子类难以修改