日常做菜的过程中,经常会有忘记放盐或者放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