2017年上半年軟件設計師試題-05
阿新 • • 發佈:2018-09-18
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 classPizzaBuilder { 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