C++ 设计模式模板方法模式

#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;
	}
};

void test01()
{
	Coffee* coeff = new Coffee;
	coeff->Make();
}

int main()
{
	test01();
	system("pause");
}

 

相关文章: