建造者模式实例之KFC
KFC套餐类图:
在建造者模式中,客户端不必知道产品内部的组成细节,将产品本身与其创建过程解耦,使得相同的创建过程可以创建不同的产品对象。但一般适用于组成部分相似的产品。
在此实例中,客户指出套餐种类,然后由Waiter提供做好的套餐(construct),此过程中,套餐的生产与提供隔离,客户不知道套餐是如何生产的,只负责接收,实现解耦。
产品类Meal(套餐类) :
//产品类Meal(套餐类)
class Meal{
public:
//food和drink是部件
void setFood(string food){
this->food = food;
}
void setDrink(string drink){
this->drink = drink;
}
string getFood(){
return food;
}
string getDrink(){
return drink;
}
private:
string food;
string drink;
};
抽象建造者类MealBuilder(套餐建造者类):
//抽象建造者类MealBuilder(套餐建造者类)
class