Пример #1
0
        private void BuildBus()
        {
            if (((BusBuilder)Builder).Car.Driver == null)
            {
                Builder.BoardDriver(DriverStore.GetDriver(typeof(BusDriver)));
            }
            while (((BusBuilder)Builder).Car.Passengers.Count != ((BusBuilder)Builder).Car.Capacity)
            {
                Passenger passenger = PassengerStore.GetPassenger(new HashSet <Type>()
                {
                    typeof(Adult), typeof(Child), typeof(Preferential)
                });
                switch (passenger)
                {
                case Child child:
                    Builder.BoardChild(child);
                    break;

                case Preferential preferential:
                    Builder.BoardPreferential(preferential);
                    break;

                case Adult adult:
                    Builder.BoardAdult(adult);
                    break;
                }
            }
        }
Пример #2
0
 public int BoardDriver(DriverStore driverStore, int amount = 1)
 {
     if (Car.Driver == null && driverStore.Count(typeof(BusDriver)) != 0)
     {
         Car.Driver = driverStore.GetDriver(typeof(BusDriver));
         return(amount - 1);
     }
     else
     {
         return(amount);
     }
 }
Пример #3
0
        private void BuildTaxi()
        {
            if (((TaxiBuilder)Builder).Car.Driver == null)
            {
                Builder.BoardDriver(DriverStore.GetDriver(typeof(TaxiDriver)));
            }
            while (((TaxiBuilder)Builder).Car.Passengers.Count != ((TaxiBuilder)Builder).Car.Capacity)
            {
                Passenger passenger = PassengerStore.GetPassenger(new HashSet <Type>()
                {
                    typeof(Adult), typeof(Child)
                });
                switch (passenger)
                {
                case Child child:
                    Builder.BoardChild(child);
                    break;

                case Adult adult:
                    Builder.BoardAdult(adult);
                    break;
                }
            }
        }