Beispiel #1
0
        private static void DecoratorScenario()
        {
            var economyCar = new EconomyCar();
            var economyCarWithDeluxeAccessories = new DeluxeAccessories(economyCar);

            var deluxeCar = new DeluxeCar();
            var deluxeCarWithBasicAccessories  = new BasicAccessories(deluxeCar);
            var deluxeCarWithDeluxeAccessories = new DeluxeAccessories(deluxeCar);

            Console.WriteLine($"{economyCar.GetDescription()} - {economyCar.GetCost()}");
            Console.WriteLine($"{economyCarWithDeluxeAccessories.GetDescription()} - {economyCarWithDeluxeAccessories.GetCost()}");
            Console.WriteLine($"{deluxeCar.GetDescription()} - {deluxeCar.GetCost()}");
            Console.WriteLine($"{deluxeCarWithBasicAccessories.GetDescription()} - {deluxeCarWithBasicAccessories.GetCost()}");
            Console.WriteLine($"{deluxeCarWithDeluxeAccessories.GetDescription()} - {deluxeCarWithDeluxeAccessories.GetCost()}");
        }
        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();
        }
Beispiel #3
0
        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();
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            ICar economyCar = new EconomyCar();

            ICar basicEconomyCar = new BasicAccessories(economyCar);

            ICar advancedEconomyCar = new AdvancedAccessories(basicEconomyCar);

            Console.WriteLine("Детайли: " + advancedEconomyCar.GetDescription());
            Console.WriteLine("Волан: " + advancedEconomyCar.GetSteeringWheel());
            Console.WriteLine("Тапицерия: " + advancedEconomyCar.GetUpholstery());
            Console.WriteLine("Климатик: " + advancedEconomyCar.GetConditioning());
            Console.WriteLine("Цвят: " + advancedEconomyCar.GetColor());
            Console.WriteLine("Пълна цена: " + advancedEconomyCar.GetCost());

            ICar sportEconomyCar = new SportsAccessories(advancedEconomyCar);

            Console.WriteLine("Детайли: " + sportEconomyCar.GetDescription());
            Console.WriteLine("Волан: " + sportEconomyCar.GetSteeringWheel());
            Console.WriteLine("Тапицерия: " + sportEconomyCar.GetUpholstery());
            Console.WriteLine("Климатик: " + sportEconomyCar.GetConditioning());
            Console.WriteLine("Цвят: " + sportEconomyCar.GetColor());
            Console.WriteLine("Пълна цена: " + sportEconomyCar.GetCost());
        }