public:
void setParts(string parts) { this->parts=parts; } string getParts() { return parts; } };
class PizzaBuilder { protected:Pizza* pizza; public:
Pizza* getPizza() { retum pizza; }
void createNewPizza() { pizza = new Pizza(); } ( 1 ); }
class HawaiianPizzaBuilder :public PizzaBuilder { public:
void buildParts() { pizza->setParts(\};
class SpicyPizzaBuider: public PizzaBuilder { public:
void buildParts() { pizza->setParts(\ }
Class Waiter{ Private:
PizzaBuilder* pizzaBuilder; public:
void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*设置构建器*/ ( 2 ) }
Pizza* getPizza() { return pizzaBuilder->getPizza(); }
16
void construct() { /*构建*/ pizzaBuilder->createNewPizza(); ( 3 ) } };
int main(){
Waiter*waiter=new Waiter();
PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder() ( 4 ); ( 5 );
cout<< \}
程序的输出结果为:
pizza: cross + mild + ham&pineapple
问题:5.1 请填写(1)(2)(3)(4)(5)
答案解析:
(1)virtual void buildParts() (2)this->pizzaBuilder=pizzaBuilder (3)pizzaBuilder->buildParts()
(4)waiter->setPizzaBuilder(hawaiian_pizzabuilder) (5)waiter->construct()
17
第 6 题
阅读下列说明和 Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】
某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员 (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) ; }
18
class HawaiianPizzaBuilder extends PizzaBuilder {
public void buildParts() { pizza.setParts(\ }
class SpicyPizzaBuilder extends PizzaBuilder {
public void buildParts() { pizza.setParts(\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(\
19
} }
程序的输出结果为:
Pizza:cross + mild + ham&pineapple
问题:6.1 请填写(1)(2)(3)(4)(5)
答案解析:
(1)abstract void buildParts(); (2)this.pizzaBuilder=pizzaBuilder (3)pizzaBuilder.buildParts()
(4)waiter.setPizzaBuilder(hawaiian_pizzabuilder) (5)waiter.construct()
20
相关推荐: