天天看點

軟體設計師(5)-2017年上半年下午JAVA

題目如下:

軟體設計師(5)-2017年上半年下午JAVA
軟體設計師(5)-2017年上半年下午JAVA
軟體設計師(5)-2017年上半年下午JAVA
軟體設計師(5)-2017年上半年下午JAVA

源碼附上:

package 真題;

public class test_2017_low {
    public static void main(String[] args) {
        Waiter waiter = new Waiter();
        PizzaBuilder hawaiian_pizzabuilder = new HawaiianPizzaBuilder();
        waiter.setPizzaBuilder(hawaiian_pizzabuilder); //空4 給waiter設定建立器
        waiter.construct();//空5 建構

        System.out.println("pizza: " + waiter.getPizza());
    }
}

class Pizza {
    private String parts;

    public void setParts(String parts) {
        this.parts = parts;
    }

    @Override
    public String toString() {
        return this.parts;
    }
}

abstract class PizzaBuilder {
    protected Pizza pizza;

    public Pizza getPizza() {
        return pizza;
    }
    public void creatrNewPizza() {
        pizza = new Pizza();
    }
    public abstract void buildParts(); //填空1 建立抽象方法
}

class HawaiianPizzaBuilder extends PizzaBuilder {
    @Override
    public void buildParts() {
        pizza.setParts("cross + mild + ham&pineapple");
    }
}

class SpicyPizzaBuilder extends PizzaBuilder {
    @Override
    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.creatrNewPizza();
        pizzaBuilder.buildParts();//空三
    }
}
           

運作結果:

軟體設計師(5)-2017年上半年下午JAVA