KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Take the following classic factory pattern: public interface IPizza { decimal Price { get; } } public class HamAndMushroomPizza : IPizza { decimal IPizza.Price { get { return 8.5m; } } } public abstract class PizzaFactory { public abstract IPizza CreatePizza(ItalianPizzaFactory.PizzaType pizzaType); } public class ItalianPizzaFactory : PizzaFactory { public enum PizzaType { HamMushroom, Deluxe, Hawaiian } public override IPizza CreatePizza(PizzaType pizzaType) { switch (pizzaType) { case PizzaType.HamMushroom: return new HamAndMushroomPizza(); case PizzaType.Hawaiian: return new HawaiianPizza(); default: throw new ArgumentException("The pizza type " + pizzaType + " is not recognized."); } } } What if one (or many) of the Concrete Pizzas requires a parameter specific to the concrete implementation at construction. For example, lets say the HamAndMushroom factory requires a parameter called, MushroomType and this parameter would be required to instantiate the object?
Tags (comma-separated)
Save Edits
Cancel