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();
        }
示例#2
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();
        }
示例#3
0
        /*
         *
         * 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();
        }
示例#4
0
            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();
                }
            }