module abstractfactory.chicagopizzaingredientfactory; import abstractfactory.pizzaingredientfactory; import abstractfactory.dough; import abstractfactory.thickcrustdough; import abstractfactory.sauce; import abstractfactory.plumtomatosauce; import abstractfactory.cheese; import abstractfactory.mozzarellacheese; import abstractfactory.veggies; import abstractfactory.blackolives; import abstractfactory.spinach; import abstractfactory.eggplant; import abstractfactory.pepperoni; import abstractfactory.slicedpepperoni; import abstractfactory.clams; import abstractfactory.frozenclams; class ChicagoPizzaIngredientFactory : PizzaIngredientFactory { override Dough createDough() { return new ThinCrustDough(); } override Sauce createSauce() { return new PlumTomatoSauce(); } override Cheese createCheese() { return new MozzarellaCheese(); } override Veggies[] createVeggies() { Veggies[] veggies = cast(Veggies[])[ new BlackOlives(), new Spinach(), new Eggplant() ]; return veggies; } override Pepperoni createPepperoni() { return new SlicedPepperoni(); } override Clams createClam() { return new FrozenClams(); } }