模板方法模式由兩個角色組成:父類角色,子類角色。 父類角色:提供模板。 子類角色:為父類模板提供實現。 類圖: JAVA代碼: AbstractClass.java ConcreteClass.java Test.java 總結:模板方法模式,定義一個操作中的演算法骨架,而將一些步驟延遲到子類中去實現 ...
模板方法模式由兩個角色組成:父類角色,子類角色。
父類角色:提供模板。
子類角色:為父類模板提供實現。
類圖:
JAVA代碼:
AbstractClass.java
package com.templatemethod; public abstract class AbstractClass { /** * 定義了演算法的骨架,即步驟 */ public void template() { this.method1(); this.method2(); this.method3(); } /** * 子類可以重寫這些方法 */ public abstract void method1(); public abstract void method2(); public abstract void method3(); }
ConcreteClass.java
package com.templatemethod; public class ConcreteClass extends AbstractClass { @Override public void method1() { System.out.println("Step 1"); } @Override public void method2() { System.out.println("Step 2"); } @Override public void method3() { System.out.println("Step 3"); } }
Test.java
package com.templatemethod; public class Test { public static void main(String[] args) { AbstractClass ac = new ConcreteClass(); ac.template(); } }
總結:模板方法模式,定義一個操作中的演算法骨架,而將一些步驟延遲到子類中去實現,使得子類可以不改變一個演算法的結構,即可重新定義該演算法的某些特定步驟。這裡需要復用的是演算法的結構,也就是步驟,而每個步驟的實現可以在子類中完成。