标签:
模板方法模式,定义算法骨架及其执行顺序,延伸至子类实现算法逻辑。
基本方法:实现算法各步骤的逻辑
模板方法:组合所有基本方法,规定其顺序
钩子方法:决定如何整合各个算法步骤
根据实际环境的不同,算法逻辑会反生变化
使用钩子方法,来标记这些变化,随之改变算法的逻辑
(主要改变是算法步骤执行与否和彼此间执行顺序)
算法结构稳定,即若干类逻辑相似
相同逻辑部分可提取成父类基本方法,不同部分留给子类实现
按业务或环境不同,不同部分能够相应变化(钩子方法的不同实现,子类逻辑发生变化)
若干类重复相似逻辑
业务要求实现某领域算法
模板方法模式,2个角色:
模板类 — 规范算法骨架,封装基本方法、模板方法和钩子方法
其中,模板方法应定义为final,防止子类修改
一般由抽象类或接口实现业务类 — 实现业务逻辑的模板类的具体子类
按业务需要,补充基本方法、钩子方法的逻辑
优点:
- 重构若干逻辑相似的类,避免代码重复
- 符合开闭原则,能够扩展算法的逻辑
劣势:
同一算法的延伸过多时,要考虑相同部分和不同部分之间的比重
若前者比重太小,那么重构这些类,就不一定值得了
模板方法模式,作者 :lenotang
(Template Method)模板方法模式的Java实现,作者 : haolloyin
标签:
原文地址:http://www.cnblogs.com/CoolSoul/p/4984834.html