模板方法模式

  模板方法模式,当我们要完成在某一细节层次一致的一个过程或者一系列步骤,但其个别步骤在更详细的层次上的实现有可能不同时,我们通常考虑使用模板方法模式来处理。

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

  

  下面是具体的代码块:

  

 1 package template;
 2 
 3 public abstract class AbstractClass {
 4     public abstract void primitiveOperation1();
 5 
 6     public abstract void primitiveOperation2();
 7 
 8     public void templateMethod() {
 9         primitiveOperation1();
10         primitiveOperation2();
11     }
12 }
13 
14 public class ConcreteClassA extends AbstractClass{
15 
16     @Override
17     public void primitiveOperation1() {
18         System.out.println("模板方法1的对象A实现");
19     }
20 
21     @Override
22     public void primitiveOperation2() {
23         System.out.println("模板方法2的对象A实现");
24     }
25     
26 }
27 
28 public class ConcreteClassB extends AbstractClass{
29 
30     @Override
31     public void primitiveOperation1() {
32         System.out.println("模板方法1的对象B实现");
33     }
34 
35     @Override
36     public void primitiveOperation2() {
37         System.out.println("模板方法2的对象B实现");
38     }
39     
40 }
41 
42 public class MainClass {
43     public static void main(String[] args) {
44         AbstractClass ac = null;
45         
46         ac = new ConcreteClassA();
47         ac.templateMethod();
48         
49         ac = new ConcreteClassB();
50         ac.templateMethod();
51     }
52 }

  通过代码我们可以看出模板方法模式的特点,他把不变的行为搬到父类,从而达到去除子类中重复代码的目的。在java类库的设计中,通常都会利用模版方法提取类库中的公共行为到抽象类中。

posted @ 2012-10-25 12:18  寒剑飘香  阅读(130)  评论(0编辑  收藏  举报