23种设计模式C++源码与UML实现--模板模式
生活随笔
收集整理的這篇文章主要介紹了
23种设计模式C++源码与UML实现--模板模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模板模式
Template Method模式也叫模板方法模式,是行為模式之一,它具有把特定的步驟算法中的某些必要的處理委讓給抽象方法,通過子類繼承抽象方法的不同實現改變整個算法的行為。
使用場景
- 具有統一的操作步驟或者操作過程
- 具有不同的操作細節
- 存在多個具有同樣操作步驟的應用場景,某些具體的操作細節卻各不相同
在抽象類中統一操作步驟,并規定好接口,讓子類實現接口,這樣可以把各個具體的子類實現操作步驟解耦合
AbstractClass
抽象類的父類
ConcreteClass
具體的實現子類
templateMethod():
模板方法
method1與method2()
具體操作方法
代碼實現:
// // Created by andrew on 2020/11/22. // #include <iostream>using namespace std;class MakeCar { public:virtual ~MakeCar() = default;virtual void MakeHead() = 0;virtual void MakeBody() = 0;virtual void MakeTail() = 0;public:void Make() // 模板函數,把業務邏輯給做好{MakeTail();MakeBody();MakeHead();} };// 只去實現具體過程,邏輯流程由父類進行規定 class Jeep : public MakeCar { public:virtual void MakeHead() {cout << "jeep head" << endl;}virtual void MakeBody() {cout << "jeep body" << endl;}virtual void MakeTail() {cout << "jeep tail" << endl;} };class Bus : public MakeCar { public:virtual void MakeHead() {cout << "bus head" << endl;}virtual void MakeBody() {cout << "bus body" << endl;}virtual void MakeTail() {cout << "bus tail" << endl;} };int main(int argc, char *argv[]) {MakeCar *car = new Bus;car->Make();delete car;MakeCar *car2 = new Jeep;car2->Make();delete car2;return 0; }總結
以上是生活随笔為你收集整理的23种设计模式C++源码与UML实现--模板模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】物理层设备
- 下一篇: 23种设计模式C++源码与UML实现--