예제 #1
0
        static void Main()
        {
            var taxiBuilder = new TaxiBuilder();
            var busBuilder  = new BusBuilder();
            var director    = new Director();

            director.Construct(taxiBuilder);

            var taxi1 = taxiBuilder.Vehicle;

            taxi1.Start();

            taxi1.Embus(new AdultPassenger());
            taxi1.Embus(new ChildPassenger());
            taxi1.Embus(new ChildPassenger());
            taxi1.Embus(new AdultPassenger());
            taxi1.Embus(new AdultPassenger());
            taxi1.Embus(new AdultPassenger());

            taxi1.Start();

            director.Construct(busBuilder);

            var bus1 = busBuilder.Vehicle;

            bus1.Start();

            bus1.Embus(new AdultPassenger());
            bus1.Embus(new ChildPassenger());
            bus1.Embus(new ChildPassenger());
            bus1.Embus(new AdultPassenger());
            bus1.Embus(new AdultPassenger());
            bus1.Embus(new AdultPassenger());
            bus1.Embus(new PrivilegedPassenger());
            bus1.Embus(new PrivilegedPassenger());
            bus1.Embus(new PrivilegedPassenger());

            bus1.Start();
        }
예제 #2
0
        public static void Main(string[] args)
        {
            List <string> names = new List <string>()
            {
                "John", "Jack", "Liz", "Alan", "Ann",
                "Ire", "Kate", "Mary", "Jane", "Sue", "Bill",
                "Will", "Hugh", "Alex", "Sandro", "Kris",
                "Lothar", "Karl", "Ingrid", "Aaron", "Darina",
                "Bianka", "Dan"
            };

            List <string> surnames = new List <string>()
            {
                "Black", "Brown", "Scot", "Ericsson",
                "Jeferson", "Li", "Martel", "King", "Eir"
            };

            Random rnd = new Random();

            DriverStore driverStore = new DriverStore();

            for (int i = 0; i < 5; i++)
            {
                driverStore.Add(new BusDriver(
                                    $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                );
                driverStore.Add(new TaxiDriver(
                                    $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                );
            }

            PassengerStore passengerStore = new PassengerStore();

            for (int i = 0; i < 240; i++)
            {
                passengerStore.Add(new Adult(
                                       $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                   );
                passengerStore.Add(new Child(
                                       $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                   );
                passengerStore.Add(new Preferential(
                                       $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                   );
            }

            BusBuilder  Krukovo  = new BusBuilder();
            TaxiBuilder Area17   = new TaxiBuilder();
            Director    director = new Director(Krukovo, driverStore, passengerStore);

            while (passengerStore.Count() != 0 &&
                   driverStore.Count(typeof(BusDriver)) != 0)
            {
                director.BuildCar();
                Console.WriteLine(Krukovo.GetResult());
            }


            director.Builder = Area17;
            while (passengerStore.Count() != 0 &&
                   driverStore.Count(typeof(TaxiDriver)) != 0)
            {
                director.BuildCar();
                Console.WriteLine(Area17.GetResult());
            }
        }
예제 #3
0
        public static void Main(string[] args)
        {
            List <string> names = new List <string>()
            {
                "John", "Jack", "Liz", "Alan", "Ann",
                "Ire", "Kate", "Mary", "Jane", "Sue", "Bill",
                "Will", "Hugh", "Alex", "Sandro", "Kris",
                "Lothar", "Karl", "Ingrid", "Aaron", "Darina",
                "Bianka", "Dan"
            };

            List <string> surnames = new List <string>()
            {
                "Black", "Brown", "Scot", "Ericsson",
                "Jeferson", "Li", "Martel", "King", "Eir"
            };

            Random rnd = new Random();

            List <Passenger> busQueue = new List <Passenger>();

            for (int i = 0; i < 140; i++)
            {
                switch (rnd.Next(3))
                {
                case 0:
                    busQueue.Add(new Adult(
                                     $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                 );
                    break;

                case 1:
                    busQueue.Add(new Child(
                                     $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                 );
                    break;

                case 2:
                    busQueue.Add(new Preferential(
                                     $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                 );
                    break;
                }
            }

            List <Driver> busDrivers = new List <Driver>();

            for (int i = 0; i < 8; i++)
            {
                busDrivers.Add(new BusDriver(
                                   $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                               );
            }

            Voyage busVoyage = new Voyage(BusBuilder.CarBuilderInstance(), busDrivers, busQueue);

            Console.WriteLine(busVoyage);
            Console.WriteLine(BusBuilder.CarBuilderInstance());


            List <Passenger> taxiQueue = new List <Passenger>();

            for (int i = 0; i < 140; i++)
            {
                switch (rnd.Next(2))
                {
                case 0:
                    busQueue.Add(new Adult(
                                     $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                 );
                    break;

                case 1:
                    busQueue.Add(new Child(
                                     $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                 );
                    break;
                }
            }

            List <Driver> taxiDrivers = new List <Driver>();

            for (int i = 0; i < 8; i++)
            {
                taxiDrivers.Add(new TaxiDriver(
                                    $"{names[rnd.Next(names.Count)]} {surnames[rnd.Next(surnames.Count)]}")
                                );
            }

            Voyage taxiVoyage = new Voyage(TaxiBuilder.CarBuilderInstance(), taxiDrivers, taxiQueue);

            Console.WriteLine(taxiVoyage);
            Console.WriteLine(TaxiBuilder.CarBuilderInstance());
        }