设计模式-模板方法

结构图:

实现:

 1 abstract class AbstractClass
 2 {
 3     abstract void primitiveOperation1();        //延迟到子类中实现
 4     abstract void primitiveOperation2();        //延迟到子类中实现
 5     
 6     public void templateMethod()
 7     {
 8         primitiveOperation1();
 9         primitiveOperation2();
10         
11     }
12     
13 }
14 
15 class ConcreteClassA extends AbstractClass{
16 
17     void primitiveOperation1()
18     {
19         System.out.println("具体类A方法一实现");
20     }
21     
22     void primitiveOperation2()
23     {
24         System.out.println("具体类A方法二实现");
25     }
26 }
27 
28 class ConcreteClassB extends AbstractClass{
29     void primitiveOperation1()
30     {
31         System.out.println("具体类B方法一实现");
32     }
33     
34     void primitiveOperation2()
35     {
36         System.out.println("具体类B方法二实现");
37     }
38 }
39 
40 public class TemplateMethod {
41     public static void main(String[] args)
42     {
43         AbstractClass c;
44     
45         c = new ConcreteClassA();
46         c.templateMethod();
47 
48         c = new ConcreteClassB();
49         c.templateMethod();
50     }
51     
52     
53 }

应用:

模板方法将重复的行为抽象到父类中,算法框架的某些具体实现由子类去定义,提高了代码复用率。

原文地址:https://www.cnblogs.com/gatsbydhn/p/5011573.html