模板方法模式
1、模板方法模式的定义
第一点:定义一个操作中的算法框架。
第二点:将一些步骤延时到子类实现
第三点:子类可以不改变算法结构,可以重新定义算法的某些特定步骤
2、模板方法模式应用场景
场景一:多个子类有共有方法,且逻辑基本相同
场景二:重复、复杂的算法,将核心算法设计为模板方法,其周边细节可以由各个子类实现
场景三:代码重构
3、模板方法模式角色划分
角色一:抽象类->作用(定义算法框架结构,将一些特定步骤延时到子类实现)
角色二:具体模板实现类,不改变算法结构,选择性去实现某些特定步骤。
4、模板方法模式原理案例
电脑开机过程:
1、激活电源
2、检测硬件
3、启动系统(加载系统)
4、登录系统
模板类:流程统一
抽象类:TemplateMethodComputer
具体类:HuaweiComputer
总结:假设步骤一 + 步骤二固定不变默认实现,只需要实现步骤三
5、模板方法模式开发案例
播放器案例
角色一:模板类->TemplateAVPlayer
角色二:实现类->DefaultAVPlayer,继承TemplateAVPlayer
TemplateAVPlayer的播放流程就可以采用模板方法模式实现
播放流程:
1、创建播放器
2、准备播放器(设置基本参数)
3、添加监听器
4、开始播放
5、结束
5、模板方法模式常见场景
UI加载、mj下拉刷新,UIViewcontroller、UIView等
demo代码地址:
网友评论