示例#1
0
        public void Main()
        {
            Director director = new Director();

            Console.WriteLine("CarBuilder");
            CarBuilder carBuilder = new CarBuilder();
            Car        car        = new Car();

            director.makeSportsCar(carBuilder);
            car = carBuilder.getResult();


            foreach (string cPart in car.lstCarBuilder)
            {
                Console.WriteLine(cPart);
            }

            Console.WriteLine("");
            Console.WriteLine("CarManualBuilder");
            CarManualBuilder carManualBuilder = new CarManualBuilder();

            director.makeSUV(carManualBuilder);
            Manual manual = carManualBuilder.getResult();

            foreach (string cPart in manual.lstCarManualBuilder)
            {
                Console.WriteLine(cPart);
            }

            Console.ReadLine();
        }
示例#2
0
        private void CrearManualAutoDeportivo()
        {
            director = new Director();
            CarManualBuilder carManual = new CarManualBuilder();

            director.MakeSport(carManual);
            var manualCreado = carManual.ObtenerResultado();

            Console.WriteLine(manualCreado.ObtenerPartes());
        }
示例#3
0
        static void Main(string[] args)
        {
            Director         director = new Director();
            CarManualBuilder builder  = new CarManualBuilder();

            director.MakeSportsCars(builder);
            Manual manual = builder.getResults();

            foreach (var item in manual.ListaPasos)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
        /// <summary>
        /// The client code creates a builder object, passes it to the
        /// director and then initiates the construction process. The end
        /// result is retrieved from the builder object.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            var director = new Director();

            var carBuilder = new CarBuilder();

            director.SetBuilder(carBuilder);
            director.ConstructSportsCar();
            //director.ConstructSUV();

            // The final product is often retrieved from a builder
            // object since the director isn't aware of and not
            // dependent on concrete builders and products.
            var car = carBuilder.Build();

            Console.WriteLine("Constructed car with:");
            Console.WriteLine($"Number of seats => {car.NumberOfSeats}");
            Console.WriteLine($"Number of doors => {car.NumberOfDoors}");
            Console.WriteLine($"Engine type => {car.EngineType}");
            Console.WriteLine($"Has trip computer => {car.HasTripComputer}");
            Console.WriteLine($"Has GPS => {car.HasGPS}");
            Console.WriteLine($"Has voice recognition => {car.HasVoiceRecognition}");

            var carManualBuilder = new CarManualBuilder();

            director.SetBuilder(carManualBuilder);
            director.ConstructSportsCar();
            //director.ConstructSUV();

            var manual = carManualBuilder.Build();

            Console.WriteLine("Constructed manual with:");
            Console.WriteLine($"Seats instructions => {manual.SeatsInstructions}");
            Console.WriteLine($"Doors instructions => {manual.DoorsInstructions}");
            Console.WriteLine($"Engine type instructions => {manual.EngineInstructions}");
            Console.WriteLine($"Trip computer instructions => {manual.TripComputerInstructions ?? "No instructions."}");
            Console.WriteLine($"GPS instructions => {manual.GPSInstructions ?? "No instructions."}");
            Console.WriteLine($"Voice recognition instructions => {manual.VoiceRecognitionInstructions ?? "No instructions."}");

            Console.ReadLine();
        }
示例#5
0
        public static void Main()
        {
            Director director = new Director();

            // EN: Director gets the concrete builder object from the client
            // (application code). That's because application knows better which
            // builder to use to get a specific product.
            //
            // RU: Директор получает объект конкретного строителя от клиента
            // (приложения). Приложение само знает какой строитель использовать,
            // чтобы получить нужный продукт.
            CarBuilder builder = new CarBuilder();

            director.ConstructSportsCar(builder);

            // EN: The final product is often retrieved from a builder object,
            // since Director is not aware and not dependent on concrete
            // builders and products.
            //
            // RU: Готовый продукт возвращает строитель, так как Директор чаще
            // всего не знает и не зависит от конкретных классов строителей
            // и продуктов.
            Car car = builder.GetResult();

            Console.WriteLine("Car built:\n" + car.GetType());

            CarManualBuilder manualBuilder = new CarManualBuilder();

            // EN: Director may know several building recipes.
            //
            // RU: Директор может знать больше одного рецепта строительства.
            director.ConstructSuv(manualBuilder);
            Manual carManual = manualBuilder.getResult();

            Console.WriteLine("\nCar manual built:\n" + carManual.Print());

            Console.ReadKey();
        }