public void Main() { //Create EconomyCar instance. ICar objCar = new EconomyCar(); //Wrp EconomyCar instance with BasicAccessories. CarAccessoriesDecorator objAccessoriesDecorator = new BasicAccessories(objCar); //Wrap EconomyCar instance with AdvancedAccessories instance. objAccessoriesDecorator = new AdvancedAccessories(objAccessoriesDecorator); Console.Write("Car Details: " + objAccessoriesDecorator.GetDescription()); Console.WriteLine("\n\n"); Console.Write("Total Price: " + objAccessoriesDecorator.GetCost()); Console.Read(); }
static void Main(string[] args) { // Create EcomomyCar instance. ICar objCar = new EconomyCar(); // Wrp EconomyCar instancw with BasicAccessories. CarAccessoriesDecorator objAccessoriesDecorator = new BasicAccessories(objCar); // Wrap EconomyCar instance with AdvancedAccessories instance. objAccessoriesDecorator = new AdvancedAccessories(objAccessoriesDecorator); Console.Write("Car Details: " + objAccessoriesDecorator.Description); Console.WriteLine(Environment.NewLine); Console.Write("Total Price: " + objAccessoriesDecorator.Cost); Console.ReadKey(); }
/* * * Ref : https://www.c-sharpcorner.com/UploadFile/damubetha/decorator-pattern-in-csharp/ * * Definition : The Decorator Pattern provides a flexible alternative to sub classing for extending functionality dynamically. */ static void Main(string[] args) { ICar economyCar = new EconomyCar(); // Wrapping an economy car with basic accessories. CarAccessoriesDecorator objAccessoriesDecorator = new BasicAccessories(economyCar); // Wrapping the economy car with sports accessories also. objAccessoriesDecorator = new SportsAccessories(objAccessoriesDecorator); // Wrapping the economy car with luxury accessories. objAccessoriesDecorator = new AdvancedAccessories(objAccessoriesDecorator); Console.WriteLine(" Car details : " + objAccessoriesDecorator.GetDescription()); Console.WriteLine(" "); Console.WriteLine("Total Price : " + objAccessoriesDecorator.GetCost()); Console.ReadLine(); }
public static void UseCar() { ICarBuilder luxuryCar = new LuxuryCar(); ICarBuilder mediumCar = new MediumCar(); ICarBuilder economyCar = new EconomyCar(); Console.WriteLine("Car Components"); Console.WriteLine("1. Luxury Cars"); Console.WriteLine("2. Medium"); Console.WriteLine("3. Economy Cars"); CarBuilderDirector builder = new CarBuilderDirector(); if (Console.ReadKey().KeyChar.ToString() == "1") { builder.Constructor(luxuryCar); luxuryCar.GetParts().ShowAllThePartsInCar(); } else if (Console.ReadKey().KeyChar.ToString() == "2") { builder.Constructor(mediumCar); mediumCar.GetParts().ShowAllThePartsInCar(); } else if(Console.ReadKey().KeyChar.ToString() == "3") { builder.Constructor(economyCar); mediumCar.GetParts().ShowAllThePartsInCar(); } }