模板方法模式

1. 模板方法模式的功能

    在于固定算法骨架,而让具体算法实现可扩展

2. 为何不是接口

    通常在 既要约束子类的行为,又要为子类提供公共功能 的时候使用抽象类

3. 变与不变

    变化部分通过接口或者抽象类,不变的部分抽象出来作为公共实现

4. 好莱坞法则

    父类模板调用子类方法,由父类去找子类,而不是子类找父类,这是一种反向控制结构,这种结构的实现原理在于java动态绑定采用的是后期绑定技术

5. 模板写法

    模板方法:定义算法骨架

    具体操作:相对固定且是公共部分的算法,一般设置为private,如果需要子类访问应该设计为protected final 

    具体的AbstractClass操作:辅助公共功能

    原语操作:抽象操作,由子类实现

    钩子操作: 可以被子类拓展的点

    Factory Method: 实例化子类

coding...

 

6. Java回调与模板方法模式

    SpringTemplate就是利用这种方式实现的,其原理利用的是Java的动态绑定技术。

7. Java中典型应用

    集合排序,通过传入Comparator接口实例进行排序

8. 模板方法模式总结

    本质:固定算法骨架

    设计原则:开闭原则和里式替换原则

9. 关联模式

    工厂方法模式

    策略模式

 

模板模式引入的问题:

1.导致父类与子类之间的强耦合,需要慎用

 

posted on 2016-07-28 12:19  zhaojunyang  阅读(134)  评论(0)    收藏  举报

导航