2017年上半年软件设计师试题-05

本文介绍了一家快餐厅如何使用生成器模式实现儿童套餐的标准化制作流程。具体包括了比萨的不同种类及其配料组合,并通过Java代码展示了如何通过Waiter类调度不同的PizzaBuilder子类来构建特定类型的比萨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。

前台服务员(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 abstract void buildParts();
}

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) { 
    /*设置构建器*/     this.pizzaBuilder = pizzaBuilder;   }   public Pizza getPizza(){ return pizzaBuilder.getPizza(); }   public void construct() {
    /*构建*/     pizzaBuilder.createNewPizza();       pizzaBuilder.buildParts();   } } Class FastFoodOrdering {   public static viod mainSting[]args) {     Waiter waiter = new Waiter();     PizzaBuilder hawaiian_pizzabuilder = new     HawaiianPizzaBuilder();     waiter.setPizzaBuilder(hawaiian_pizzabuilder);     waiter.construct();     System.out.println("pizza: " + waiter.getPizza());   } } 程序的输出结果为: Pizza:cross + mild + ham&pineapple

 

转载于:https://www.cnblogs.com/yszd/p/9669602.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值