03 模板方法模式

it2023-10-19  87

#03 模板方法模式 # 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{ public: virtual void BoildWater(){ cout << "煮山泉水..." << endl; } //冲泡 virtual void Brew(){ cout << "冲泡咖啡..." << endl; } //倒入杯中 virtual void PourInCup(){ cout << "咖啡倒入杯中..." << endl; } //加辅助料 virtual void AddSomething(){ cout << "加糖,加牛奶,加点醋..." << endl; } }; //冲泡茶水 class Tea : public DrinkTemplate{ public: 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(); cout << "-----------" << endl; Coffee* coffee = new Coffee; coffee->Make(); } int main(){ test01(); system("pause"); return 0; }

 

最新回复(0)