設計模式-模塊方法模式(TemplateMethod)
阿新 • • 發佈:2018-12-12
bst git inf color string ebo page qjm 頭部
模塊方法模式是行為模式之一,它把具有特定步驟算法中的某些必要的處理委讓給抽象方法,通過子類繼承對抽象方法的不同實現改變整個算法的行為。
UML圖:
具體代碼:
/** * 抽象-模塊方法模式核心 */ public abstract class AbstractPage { public abstract void makeHeader();//組裝頁面頭部 public abstract void makeBody();//組裝頁面body public abstract void makeFooter();//組裝頁腳 public void make(){ makeHeader();//組裝頭 makeBody();//組裝身 makeFooter();//組裝腳 } }
/** * 頁面1 */ public class Page1 extends AbstractPage{ @Override public void makeHeader() { System.out.println("頁面1,寫頭"); } @Override public void makeBody() { System.out.println("頁面1,寫身"); } @Overridepublic void makeFooter() { System.out.println("頁面1,寫腳"); } }
/** * 頁面2 */ public class Page2 extends AbstractPage{ @Override public void makeHeader() { System.out.println("頁面2,寫頭"); } @Override public void makeBody() { System.out.println("頁面2,寫身"); } @Overridepublic void makeFooter() { System.out.println("頁面2,寫腳"); } }
public class Main { public static void main(String[] args) { AbstractPage page1 = new Page1(); page1.make();//頁面1拼裝 System.out.println("---------------------------"); AbstractPage page2 = new Page2(); page2.make();//頁面2拼裝 } }
結果:
頁面1,寫頭
頁面1,寫身
頁面1,寫腳
---------------------------
頁面2,寫頭
頁面2,寫身
頁面2,寫腳
應用場景:
1.具有統一的操作步驟或操作過程
2.具有不同的操作細節
3.存在多個具有同樣操作步驟的應用場景,但某些具體的操作細節卻各不相同
源碼地址:https://github.com/qjm201000/design_pattern_templateMethod.git
設計模式-模塊方法模式(TemplateMethod)