Template Method(模板方法模式)
2020-04-21 本文已影响0人
一个追寻者的故事
定义
定一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
使用场景
- 多个子类有公共的方法,并且逻辑基本相同时。
- 重要、复杂的算法,可以把核心的算法设计为模板方法,周边的相关细节功能则由各个子类实现。
- 重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过钩子函数约束其行为。
类图
Template Method class diagram举例
1、Android 中 View的绘制流程
View 的 draw方法draw方法定义了 view绘制的基本骨架,具体的实现可有不同的组件去实现。
2、Android 中 Activity 的生命周期
Activity 定义了 onCreate、onResume 等页面生命周期方法,当页面需要加载的时候会跟 ActivityManagerService 进行跨进程交互,之后回调 Activity 的各个生命周期函数,会根据不同 Activity 具体的 生命周期函数 实现进行回调,实现特定页面的处理,这也是一个典型的 template method 设计思想。