Java学习笔记——设计模式之七.模板方法模式

模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

结构图:

代码:

算法骨架:

 1 package cn.happy.design_pattern._07templatemethod;
 2 
 3 public abstract class AbstractClass {
 4 
 5     public abstract void primitiveOperation1();
 6     public abstract void primitiveOperation2();
 7     public void templateMethod(){
 8         primitiveOperation1();
 9         primitiveOperation2();
10     }
11 }

某类重写算法骨架的某步骤:

 1 package cn.happy.design_pattern._07templatemethod;
 2 
 3 public class ConcreteClassA extends AbstractClass {
 4 
 5     @Override
 6     public void primitiveOperation1() {
 7         System.out.println("具体类A方法1实现");
 8 
 9     }
10 
11     @Override
12     public void primitiveOperation2() {
13         System.out.println("具体类A方法2实现");
14 
15     }
16 
17 }
18 public class ConcreteClassB extends AbstractClass {
19 
20     @Override
21     public void primitiveOperation1() {
22         System.out.println("具体类B方法1实现");
23 
24     }
25 
26     @Override
27     public void primitiveOperation2() {
28         System.out.println("具体类B方法2实现");
29 
30     }
31 
32 }

测试类:

 1 package cn.happy.design_pattern._07templatemethod;
 2 
 3 public class Mmain {
 4 
 5     public static void main(String[] args) {
 6         AbstractClass c = new ConcreteClassA();
 7         c.templateMethod();
 8         c = new ConcreteClassB();
 9         c.templateMethod();
10 
11     }
12 
13 }

 

posted @ 2017-06-18 13:38  Tomas曼  Views(144)  Comments(0Edit  收藏  举报