設計模式(十四) 模板方法模式

2021-10-09 05:58:50 字數 860 閱讀 8221

模式中的角色

抽象類(abstractclass):定義了演算法的骨架。

具體類(concreteclass):實現抽象類中的抽象方法,已完成完整的演算法。

//抽象模板類

public abstract class abstractperson

//以下是不同子類根據自身特性完成的具體步驟

protected abstract void dressup();

protected abstract void eatbreakfast();

protected abstract void takethings();

}//實現類1

ublic class student extends abstractperson

@override

protected void eatbreakfast(

) @override

protected void takethings()}

//實現類2

public class teacher extends abstractperson

@override

protected void eatbreakfast(

) @override

protected void takethings(

)}

測試類

public class client 

}結果:

穿校服吃媽媽做好的早飯

背書包,帶上家庭作業和紅領巾

穿工作服

做早飯,照顧孩子吃早飯

帶上昨晚準備的考卷

設計模式 (十四)模板方法模式 Template

模板方法模式 template 是行為模式之一,其就是簡單定義乙個演算法執行骨架,而將其具體的演算法延遲到子類中實現,從而使出現過多的類的時候不用再改變演算法和結構直接新增乙個實現子類就可以了。一般在具體統一的操作步驟和業務功能,但是具有不同的細節處理,這樣用模板方法模式減少了 的復用 下面簡單的看...

python設計模式(十四) 模板方法模式

定義乙個演算法或者流程,部分環節設計為外部可變,用類似於模板的思想來例項化乙個實體,可以往模板中填充不同的內容 在模板思想下,實體的整體框架是確定的,他是乙個模板,但是模板下內容可變,從而實現了動態的更新流程或演算法。示例code encoding utf 8 實現乙個客戶點單後的處理流程流程 cl...

模板方法模式 java設計模式(二十四)

模板方法模式 template method pattern 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義演算法的某些特定步驟。鉤子方法分為兩種。模板方法結構。缺點 適用範圍 private final class worker extends ...