晚繫結機制:定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
使用場景:
1.多個子類有公有的方法,且邏輯基本相同時;
2.重要,複雜的演算法,可以把核心演算法設計為模板方法,周邊的相關細節功能則由各個子類實現;
3.重構時,把相同的**提取到父類中,然後通過鉤子函式約束其行為。
#include
#include
#include
using
namespace std;
class
hummermodel
virtual
void
stop()
virtual
void
alarm()
virtual
void
engineboom()
virtual
bool
is_alarm()
virtual
void
run(
) final };
class
hummerh1model
:public hummermodel
void
stop()
void
alarm()
void
engineboom()
bool
is_alarm()
};class
hummerh2model
:public hummermodel
void
stop()
void
alarm()
void
engineboom()
};intmain()
模板方法模式1
author version 0.1 模板設計模式 時間消耗模板 使用該模板測試方法的執行時間 public abstract class timeexpendtemplate 建立timeexpendtemplatetest類繼承timeexpendtemplate模板,重寫method的方法,例...
行為型模式(1) 模板方法模式
行為型模式用於描述程式在執行時複雜的流程控制,即描述多個類或物件之間怎樣相互協作共同完成單個物件都無法單獨完成的任務,它涉及演算法與物件間職責的分配。行為型模式分為類行為模式和物件行為模式,前者採用繼承機制來在類間分派行為,後者採用組合或聚合在物件間分配行為。由於組合關係或聚合關係比繼承關係耦合度低...
B1 模板方法模式 TemplateMethod
定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中.模板方法使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟 應用場景 a.操作步驟穩定,而具體細節延遲到子類.示例 所有的商品類在使用者購買前,都需要給使用者顯示出最終支付的費用.但有些商品需要納稅,有些商品可能有打折.abst...