大话设计模式C++版——建造者模式

日常做菜的过程中,经常会有忘记放盐或者放2次盐的经历,最后导致好好的一盘菜让大家无从下口。这个时候就需要用到建造者模式来规范炒菜的过程,来保证每一道菜都会经历加油、放食物、放盐、放味精这4道基本的工序,同时保证每道工序不会重复。

1、炒菜基类

class CCook
{
public:
	CCook()	{}
	virtual	~CCook() {}
	
	//建造过程函数
	//为了保证所有的子类能够按照指定顺序依次实现完整的建造过程,而不会忘记某一个过程的调用(如忘了放盐)
	void	Cook()
	{
		PutFat();			//先放油
		PutFood();			//再放食物
		PutSalt();			//接着放盐
		PutAginomoto();		//最后放味精
	}

protected:
	virtual	void PutFat() = 0;
	virtual	void PutFood() = 0;
	virtual	void PutSalt() = 0;
	virtual	void PutAginomoto() = 0;
};

2、炒肉类,继承并实现CCook的每一道工序

class CCookMeat : public CCook
{
public:

private:
	void PutFat()
	{
		printf("Please input 10 gram fat to the pen\n");
	}
	
	void PutFood()
	{
		printf("Please 

你可能感兴趣的:(笔记,设计模式,c++,建造者模式)