static void GoedkopePizza() { //Maak een goedkope pizza margherita. PizzaDelivery cheapDelivery = new PizzaDelivery(); //We bepalen hier met een property welke pizza wordt gebruikt door onze delivery. cheapDelivery.factory = PizzaMargheritaFactory.Instance; Pizza goodDeal = cheapDelivery.DeliverPizza(); Console.WriteLine(); Console.WriteLine($"GoedkopePizza() \r\n\t {goodDeal}"); Debugger.Break(); }
static void DurePizza() { //Maak een duurdere pizza margherita door zelf een eigen pizza samen te stellen vanaf het deeg (dom!) //Betere keuze is alleen toevoegen wat er nog op moet; omdat je anders per ingredient extra veel betaalt. var expensiveDelivery = new PizzaDelivery(); var customFactory = new CustomPizzaFactory(); customFactory.ExtraIngredients = new List <Ingredient>() { new TomatoSauce(), new Cheese(), new Basil() }; expensiveDelivery.factory = customFactory; Pizza badDeal = expensiveDelivery.DeliverPizza(); Console.WriteLine(); Console.WriteLine($"DurePizza() \r\n\t {badDeal}"); Debugger.Break(); }
static void PizzaMargheritaMetSalami() { var expensiveDelivery = new PizzaDelivery(); var customFactory = new CustomPizzaFactory(); //Geef aan welke Pizza als basis gebruikt moet gaan worden; dit levert aan beter prijs plaatje op. customFactory.BasePizza = PizzaMargheritaFactory.Instance.PreparePizza(); //Het enige extra ingredient is salami. customFactory.ExtraIngredients = new List <Ingredient>() { new Salami() }; expensiveDelivery.factory = customFactory; Pizza NotBadNotGreatDeal = expensiveDelivery.DeliverPizza(); Console.WriteLine(); Console.WriteLine($"PizzaMargheritaMetSalami() \r\n\t {NotBadNotGreatDeal}"); Debugger.Break(); }