一、整体代码
PizzaStore.java
public abstract class PizzaStore {
abstract Pizza createPizza(String item);//面向抽象编程,对扩展开放,对修改封闭。
public Pizza orderPizza(String type) {
Pizza pizza = createPizza(type);
System.out.println("--- Making a " + pizza.getName() + " ---");
pizza.prepare();//面向抽象编程
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
}
NYPizzaStore.java
public class NYPizzaStore extends PizzaStore {
Pizza createPizza(String item) {
if (item.equals("cheese")) {
return new NYStyleCheesePizza();
} else if (item.equals("clam")) {
return new NYStyleClamPizza();
} else return null;
}
}
ChicagoPizzaStore.java
public class ChicagoPizzaStore extends PizzaStore {
Pizza create