设计模式-模板方法模式

行为型-模板方法模式

//模板方法模式

#include <iostream>
using namespace std;

//
class DrinkTemplate{
public:
    virtual void BoildWater() = 0; //煮水
    virtual void Brew() = 0; //冲泡
    virtual void PourInCup() = 0; //倒入杯中
    virtual void AddSomething() = 0; //加辅助料

    //模板方法
    void Make(){
        BoildWater();
        Brew();
        PourInCup();
        AddSomething();
    }
};

//冲泡咖啡
class Coffee : public DrinkTemplate{
    virtual void BoildWater(){
        cout << "煮山泉水..." << endl;
    }
    virtual void Brew(){
        cout << "冲泡咖啡..." << endl;
    }
    virtual void PourInCup(){
        cout << "咖啡倒入杯中..." << endl;
    }
    virtual void AddSomething(){
        cout << "加糖,加牛奶..." << endl;
    }
};

//冲泡咖啡
class Tea : public DrinkTemplate{
    virtual void BoildWater(){
        cout << "煮自来水..." << endl;
    }
    virtual void Brew(){
        cout << "冲泡茶叶..." << endl;
    }
    virtual void PourInCup(){
        cout << "茶叶倒入杯中..." << endl;
    }
    virtual void AddSomething(){
        cout << "加糖,加柠檬,加生姜..." << endl;
    }
};

void test01(){
    Tea* tea = new Tea;
    tea->Make();

    Coffee* coffee = new Coffee;
    coffee->Make();
}

int main()
{
    test01();


    system("pause");
    return 0;
}
posted @ 2023-10-14 19:31  洋綮  阅读(5)  评论(0)    收藏  举报