设计模式学习篇-template method 模板方法模式
模板方法模式:定义一个算法的骨架,将一些步骤延迟到子类中,模板方法使得子类不改变算法的结构但可以重新定义该算法特定的步骤。既要约束子类的行为,又要为子类提供公共的行为,必须使用抽象类。
本质:就是固定算法的骨架。
?
?
此模式体现出变与不变。将不变的抽象出来提供公共行为。
?
模板方法的一个目的:就在于让其他类来扩展或者具体实现在模板方法中固定的算法骨架中特定的算法步骤。
主要使用继承方式,来让父类在运行期间可以调用到子类的行为。
?
java回调技术,通过回调在接口中定义的方法,调用到具体的实现类中的方法(匿名类对象),达到模板方法的效果。它应该属于模板方法模式的一种变形实现。回调机制采用委托的方式来组合功能。他的耦合度要比继承低,比较灵活。
?
4、? 尽量减少primitive operation,因为需要重新定义的操作越多,客户程序就越长
?
类图如下:
?
?
?