标签:
结构图:
实现:
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 }
应用:
模板方法将重复的行为抽象到父类中,算法框架的某些具体实现由子类去定义,提高了代码复用率。
标签:
原文地址:http://www.cnblogs.com/gatsbydhn/p/5011573.html