Example #1
0
        /// <summary>
        /// Low level concrete pizza factory method.
        /// </summary>
        /// <param name="type">Type of pizza</param>
        /// <returns>Concrete Chicago Style pizza</returns>
        public override Pizza CreatePizza(string type)
        {
            Pizza pizza = null;

            switch (type.ToLower())
            {
            case "cheese":
                pizza = new ChicagoCheesePizza();
                break;

            case "pepperoni":
                pizza = new ChicagoPepperoniPizza();
                break;

            case "clam":
                pizza = new ChicagoClamPizza();
                break;

            case "veggie":
                pizza = new ChicagoVeggiePizza();
                break;

            default:
                break;
            }

            return(pizza);
        }
        protected override Pizza CreatePizza(PizzaType pizzaType)
        {
            Pizza pizza = null;
            var   pizzaIngredientFactory = new ChicagoPizzaIngredientFactory();

            switch (pizzaType)
            {
            case PizzaType.Cheese:
                pizza = new ChicagoCheesePizza(pizzaIngredientFactory);
                break;

            case PizzaType.Pepperoni:
                pizza = new ChicagoPepperoniPizza(pizzaIngredientFactory);
                break;

            case PizzaType.Clam:
                pizza = new ChicagoClamPizza(pizzaIngredientFactory);
                break;

            case PizzaType.Veggie:
                pizza = new ChicagoVeggiePizza(pizzaIngredientFactory);
                break;
            }

            return(pizza);
        }