未分类题
某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员(Waiter)调度厨师制作套餐。现采用生成器(Builder)模式实现制作过程,得到如图6-1所示的类图。

【Java代码】
class Pizza{
private String parts;
public void setParts(String parts){this.parts=parts;}
public String toString( ){return this.parts;}
}
abstract class PizzaBuilder{
protected Pizza pizza;
public Pizza getPizza( ){return pizza;}
public void createNewPizza( ){pizza=new Pizza( );}
public(1);
}
class HawaiianPizzaBuilder extends PizzaBuilder{
public void buildParts( ){pizza.setParts("cross+mild+ham&pineapp1e”};
}
class SpicyPizzaBuilder extends PizzaBuilder{
public void buildParts( ){pizza.setParts("pan baked+hot+pepperoni&salami");}
}
class Waiter{
private PizzaBuilder pizzaBuilder;
public void setPizzaBuilder(PizzaBuilder pizzaBuilder){/*设置构建器*/
(2);
}
public Pizza getPizza( ){return pizzaBuilder.getPizza( );}
public void construct( ){/*构建*/
pizzaBuilder.createNewPizza( );
(3);
}
}
Class FastFoodOrdering{
public static viod mainSting[]args){
Waiter waiter=new Waiter( );
PizzaBuilder hawaiian_pizzabuilder=new HawaiianPizzaBuilder( );
(4);
(5);
System.out.println("pizza:"+waiter.getPizza( ));
}
}
程序的输出结果为:
Pizza:cross+mild+ham&pineapple
【参考答案】
(1)abstract void buildParts();
(2)this.pizzaBuilder=pizz......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)