module abstractfactory.chicagopizzastore; import abstractfactory.pizza; import abstractfactory.pizzastore; import abstractfactory.pizzaingredientfactory; import abstractfactory.chicagopizzaingredientfactory; import abstractfactory.cheesepizza; import abstractfactory.veggiepizza; import abstractfactory.clampizza; import abstractfactory.pepperonipizza; class ChicagoPizzaStore : PizzaStore { protected: override Pizza createPizza(string item) { Pizza pizza; PizzaIngredientFactory ingredientFactory = new ChicagoPizzaIngredientFactory(); if (item == "cheese") { pizza = new CheesePizza(ingredientFactory); pizza.setName("Chicago Style Cheese Pizza"); } else if (item == "veggie") { pizza = new VeggiePizza(ingredientFactory); pizza.setName("Chicago Style Veggie Pizza"); } else if (item == "clam") { pizza = new ClamPizza(ingredientFactory); pizza.setName("Chicago Style Clam Pizza"); } else if (item == "pepperoni") { pizza = new PepperoniPizza(ingredientFactory); pizza.setName("Chicago Style Pepperoni Pizza"); } return pizza; } }