定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
模板方法模式包含abstractclass(抽象類)和concreteclass(具體類、具體方法或者是鉤子方法)
從類圖可知,結構比較簡單,process函式為模板方法,為乙個頂級邏輯的骨架,裡面包含各種操作方法,方法可以為具體方法或者是抽象方法。
下面是c++版本的實現。
抽象類banktemplatemethod(銀行業務辦理流程類)
//抽象類banktemplatemethod(銀行業務辦理流程類)
class banktemplatemethod
virtual void transact() = 0;
void evaluate()
void process()
};
具體子類deposit(存款類)
//具體子類deposit(存款類)
class deposit : public banktemplatemethod
};
具體子類withdraw(取款類)
//具體子類withdraw(取款類)
class withdraw : public banktemplatemethod
};
具體子類transfer**賬類)
//具體子類transfer**賬類)
class transfer : public banktemplatemethod
};
客戶端測試
//客戶端測試
int main(void)
輸出結果 c 設計模式之模板方法模式
模板方法模式是指在乙個方法中定義乙個演算法的骨架,將一些步驟延遲到子類中 模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟 抽象方法由子類實現 這樣可以確保演算法的結構不變,由子類提供部分實現 策略模式和模板方法模式都封裝演算法,乙個用組合,乙個用繼承 測試 include...
設計模式之模板方法模式(C )
模板方法模式,定義乙個操作中的演算法的股價,而將一些步驟延遲到了子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。說白了就是有乙個演算法有很多部分,這個演算法在基類中已經定義好了。而演算法中的各個部分都寫成各個成員函式了。然後在子類中可以覆蓋這些成員函式,從而實現不...
模板設計模式 PHP設計模式之模板方法模式
模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...