1、什麼是模板方法模式算法
Template Method模式也叫模板方法模式,是 行爲模式之一,它把具備特定步驟算法中的某些 必要的處理委讓給抽象方法,經過子類繼承對抽 象方法的不一樣實現改變整個算法的行爲。測試
2、模板方法模式的應用場景this
Template Method模式通常應用在具備如下條件 的應用中:spa
- 具備統一的操做步驟或操做過程code
- 具備不一樣的操做細節blog
- 存在多個具備一樣操做步驟的應用場景,但某些具體的操做細節卻各不相同繼承
3、模板方法模式的結構模板
4、模板方法模式的角色和職責class
AbstractClass: 抽象類的父類方法
ConcreteClass: 具體的實現子類
templateMethod(): 模板方法
method1()與method2(): 具體步驟方法
作車
1 /* 2 * 組裝車 3 */ 4 public abstract class MakeCar { 5 //組裝車頭 6 public abstract void makeHead(); 7 8 //組裝車身 9 public abstract void makeBody(); 10 11 //組裝車尾 12 public abstract void makeTail(); 13 14 public void make() { 15 this.makeHead(); 16 this.makeBody(); 17 this.makeTail(); 18 } 19 }
作公交車
1 //作公交車 2 public class MakeBus extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("bus:組裝車身"); 6 } 7 8 public void makeHead() { 9 System.out.println("bus:組裝車頭"); 10 } 11 12 public void makeTail() { 13 System.out.println("bus:組裝車尾"); 14 } 15 }
組裝Jeep車
1 //組裝Jeep車 2 public class MakeJeep extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("jeep:組裝車身"); 6 } 7 8 public void makeHead() { 9 System.out.println("jeep:組裝車頭"); 10 } 11 12 public void makeTail() { 13 System.out.println("jeep:組裝車尾"); 14 } 15 }
作卡車
1 //作卡車 2 public class MakeKa extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("ka:組裝車身"); 6 } 7 8 public void makeHead() { 9 System.out.println("ka:組裝車頭"); 10 } 11 12 public void makeTail() { 13 System.out.println("ka:組裝車尾"); 14 } 15 }
測試
1 public class MainClass { 2 public static void main(String[] args) { 3 MakeCar bus = new MakeBus(); 4 // bus.makeHead(); 5 // bus.makeBody(); 6 // bus.makeTail(); 7 bus.make(); 8 9 System.out.println("-------------------"); 10 11 MakeCar jeep = new MakeJeep(); 12 // jeep.makeHead(); 13 // jeep.makeBody(); 14 // jeep.makeTail(); 15 jeep.make(); 16 17 System.out.println("-------------------"); 18 19 MakeCar ka = new MakeKa(); 20 ka.make(); 21 } 22 }