Java學習筆記——設計模式之七.模板方法模式
阿新 • • 發佈:2017-06-18
tro mage emp java學習 java學習筆記 trac 子類 技術 primitive
模板方法模式(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 }
Java學習筆記——設計模式之七.模板方法模式