模板模式

 1 /**
 2  * 封装算法
 3  * 模板方法模式:
 4  * 在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类
 5  * 可以在不改变算法结构的情况下,重新定义算法中的某些步骤
 6  */
 7 abstract class AbstractClass{
 8     
 9     final void templateMethod(){
10         primitiveOperation1();
11         primitiveOperation2();
12         concreteOperarion();
13         hook();
14     }
15 
16     abstract void primitiveOperation1();//由具体的子类实现
17 
18     abstract void primitiveOperation2();
19 
20     final void concreteOperation(){ // 子类无法覆盖,被模板方法直接使用或被子类使用
21     
22     }
23 
24     void hook(){} // 由子类决定要不要覆盖
25 }
26 /**
27  * 好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你
28  */

 

posted @ 2014-04-10 14:31  soul390  阅读(110)  评论(0编辑  收藏  举报