模板方法模式
- 定义一个操作中的算法框架
- 将一些步骤延时到子类中实现
- 子类可以不改变算法结构,可以重新定义算法的某些特定步骤;
模板方法模式应用场景
- 多个子类有共有方法,且逻辑基本相同
- 重复、复杂的算法,将核心算法设计为模板方法,其周边细节由各个子类实现
- 代码重构
角色划分
- 角色一:抽象类(定义算法框架,将一些特定步骤延时到子类中实现)
- 角色二:具体模板实现类,不改变算法结构,选择性去实现某些特定步骤
模板方法:模板方法就是模板类中,写算法框架的方法;
模板方法是一个太监方法,它不允许被继承或者重写;
模板类的算法结构固定,不允许修改
案例
- 例如viewController的生命周期就是一个模板方法;
- 视频播放,也可以使用模板方法来实现;
demo
网友评论