protected override AbstractPizza CreatePizza(PizzaTypesEn type) { var ingredientsFactory = new ChicagoIngredientsFactory(); switch (type) { case PizzaTypesEn.Cheese: return(new CheesePizza(ingredientsFactory) { Name = "Chicago Style Cheese Pizza" }); case PizzaTypesEn.Veggie: return(new VeggiePizza(ingredientsFactory) { Name = "Chicago Style Veggie Pizza" }); case PizzaTypesEn.Clam: return(new ClamPizza(ingredientsFactory) { Name = "Chicago Style Clam Pizza" }); case PizzaTypesEn.Pepperoni: return(new PepperoniPizza(ingredientsFactory) { Name = "Chicago Style Pepperoni Pizza" }); default: throw new System.NotImplementedException(); } }
public void OrderPizza(PizzaTypesEn type) { var pizza = CreatePizza(type); pizza.Prepare(); pizza.Bake(); pizza.Cut(); pizza.Box(); }
protected override AbstractPizza CreatePizza(PizzaTypesEn type) { switch (type) { case PizzaTypesEn.Cheese: return(new ChicagoCheesePizza()); case PizzaTypesEn.Veggie: return(new ChicagoVeggiePizza()); case PizzaTypesEn.Clam: return(new ChicagoClamPizza()); case PizzaTypesEn.Pepperoni: return(new ChicagoPepperoniPizza()); default: throw new System.NotImplementedException(); } }
protected abstract AbstractPizza CreatePizza(PizzaTypesEn type);