行為型設計模式之模板方法模式

2021-12-29 22:34:02 字數 1360 閱讀 5815

行為型設計模式之模板方法模式:定義乙個操作中的演算法骨架,而將這些步驟延伸到子類中去,使得子類可以不改變乙個演算法的結構,即可重新定義改演算法的某些特定步驟(這裡復用的是演算法結構,步驟的具體實現可以由子類完成)。

模板方法模式參與角色:

父類角色:提供模板:定義操作的所有流程

子類角色:為模板某些方法提供具體的實現

父類角色:printtemplate

package com.zhiwei.template;

public abstract class printtemplate

//印表機在開始工作的時候必須進行連線,可以使不變的部分,不需要子類去實現

public void initializeprinter()

}子類角色:

package com.zhiwei.template;

/** * 模板方法的具體實現類:

* 作用:根據自定義的需求,實現父類相關的抽象方法實現對應的功能

* @author yang zhiwei

* */

public class printscheme01 extends printtemplate

@override

public void printbody()

@override

public void printtail()

}package com.zhiwei.template;

public class printscheme02 extends printtemplate

@override

public void printbody()

@override

public void printtail()

}測試**:

package com.zhiwei.template;

public class templatetest

}結果:

解釋:

建立ppt檔案,使用ms-powepoint自帶的模板,ppt模板為使用者建立完整的ppt檔案提前做了一些樣式設定等工作(父類的實現方法),而使用者根據需要將自己的想法和內容填入ppt模板(子類對父類的抽象方法的實現),最後形成完整的ppt檔案,完成ppt檔案的建立過程。使用者自己修改ppt模板、填入內容等操作都被powerpoint(父類角色)給限定,不同的人可以根據同乙個ppt模板可以建立不同的ppt檔案。

設計模式(7)模板模式 行為型

在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。實現了模板方法,定義了演算法的骨架。實現抽象類中的抽象方法,已完成完整的演算法。模板方法模式算是比較好理解的一種模式。簡單示例如下 public abstract ...

GoF23設計模式 行為型設計模式 模板方法模式

設計乙個系統,知道了演算法所需的關鍵步驟,而且明確這些步驟的執行順序,但某些步驟的具體實現未知,或者說某些步驟的實現與具體的環境有關,系統該如何設計?1 去銀行辦理業務,一般有四個流程 取號 排隊 辦理具體業務 對工作人員進行評價。其中取號 排隊和對工作人員的評價是對每個客戶都是一樣的,辦理具體的業...

行為模式之模板方法模式

模板方法 template method 普遍存在於抽象類中,它用一些抽象的方法定義乙個演算法,而將這些抽象方法的具體實現放到子類中。模板方法包含兩部分 abstract class abstractclass abstract void prepare abstract void execute ...