设计模式之建造模式

建造模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同表示。

UML图:

设计模式之建造模式_第1张图片

需求:

我们假设一个快餐店的商业案例,其中,一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。汉堡(Burger)可以是素食汉堡(Veg Burger)或鸡肉汉堡(Chicken Burger),它们是包在纸盒中。冷饮(Cold drink)可以是可口可乐(coke)或百事可乐(pepsi),它们是装在瓶子中。

我们将创建一个表示食物条目(比如汉堡和冷饮)的Item接口和实现Item接口的实体类,以及一个表示食物包装的Packing接口和实现Packing接口的实体类,汉堡是包在纸盒中,冷饮是装在瓶子中。

然后我们创建一个Meal类,带有ItemArrayList和一个通过结合Item来创建不同类型的Meal对象的MealBuilderBuilderPatternDemo,我们的演示类使用MealBuilder来创建一个Meal

Item接口抽象:

设计模式之建造模式_第2张图片

Packing包装接口(纸质包装,瓶装):

设计模式之建造模式_第3张图片

Burger汉堡:

设计模式之建造模式_第4张图片

ChickenBurger鸡肉汉堡:

设计模式之建造模式_第5张图片

VegBurger蔬菜汉堡:

设计模式之建造模式_第6张图片

Bottle瓶装:

设计模式之建造模式_第7张图片

Wrapper纸质包装:

设计模式之建造模式_第8张图片

ColdDrink冷饮:

设计模式之建造模式_第9张图片

Coke可口可乐:

设计模式之建造模式_第10张图片

Pepsi百事可乐:

设计模式之建造模式_第11张图片

Meal:

设计模式之建造模式_第12张图片

MealBuilder:

设计模式之建造模式_第13张图片

BuilderPatternDemo:

设计模式之建造模式_第14张图片

构造了一个鸡肉百事可乐汉堡和一个蔬菜可口可乐汉堡。

你可能感兴趣的:(设计模式之建造模式)