1. 程式人生 > >2017年上半年軟件設計師試題-05

2017年上半年軟件設計師試題-05

xtend 輸出結果 設計師 制作 套餐 模式 前臺 alt abstract

技術分享圖片

技術分享圖片

技術分享圖片

  某快餐廳主要制作並出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。

前臺服務員(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

2017年上半年軟件設計師試題-05