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

需求:
我们假设一个快餐店的商业案例,其中,一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。汉堡(Burger)可以是素食汉堡(Veg Burger)或鸡肉汉堡(Chicken Burger),它们是包在纸盒中。冷饮(Cold drink)可以是可口可乐(coke)或百事可乐(pepsi),它们是装在瓶子中。
我们将创建一个表示食物条目(比如汉堡和冷饮)的Item接口和实现Item接口的实体类,以及一个表示食物包装的Packing接口和实现Packing接口的实体类,汉堡是包在纸盒中,冷饮是装在瓶子中。
然后我们创建一个Meal类,带有Item的ArrayList和一个通过结合Item来创建不同类型的Meal对象的MealBuilder。BuilderPatternDemo,我们的演示类使用MealBuilder来创建一个Meal。
Item接口抽象:

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

Burger汉堡:

ChickenBurger鸡肉汉堡:

VegBurger蔬菜汉堡:

Bottle瓶装:

Wrapper纸质包装:

ColdDrink冷饮:

Coke可口可乐:

Pepsi百事可乐:

Meal:

MealBuilder:

BuilderPatternDemo:

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