コード例 #1
0
ファイル: UI.cs プロジェクト: OzHog/Garage-Manager
        // $G$ DSN-002 (-10) The UI should not know Car\Truck\Motorcycle
        private Vehicle getNewVehicleFromUser(string i_LicenseNumber)
        {
            (r_Screens[eUIScreens.VehicleType] as MenuScreen).Display(out string vehicleType);

            VehicleProducer.eProducibleVehicles vehicleToProduce =
                (VehicleProducer.eProducibleVehicles)parseMenuOption(vehicleType);
            Vehicle vehicle = VehicleProducer.Produce(i_LicenseNumber, vehicleToProduce);

            getVehicleData(ref vehicle);

            switch (vehicleToProduce)
            {
            case VehicleProducer.eProducibleVehicles.Car:
                Car car = (vehicle as Car);
                getCarDataFromUser(ref car);
                break;

            case VehicleProducer.eProducibleVehicles.Motorcycle:
                Motorcycle motorcycle = (vehicle as Motorcycle);
                getMotorcycleDataFromUser(ref motorcycle);
                break;

            case VehicleProducer.eProducibleVehicles.Truck:
                Truck truck = (vehicle as Truck);
                getTruckDataFromUser(ref truck);
                break;
            }

            return(vehicle);
        }
コード例 #2
0
        static void Main()
        {
            var car = VehicleProducer.Build(CarBuilder.GetInstance());

            var motorCycle = VehicleProducer.Build(MotorCycleBuilder.GetInstance());

            var scooterBuilder = VehicleProducer.Build(ScooterBuilder.GetInstance());

            car = CarBuilder
                  .GetInstance()
                  .WithDoors()
                  .WithEngine()
                  .WithFrame()
                  .WithType()
                  .WithWheels()
                  .Build();
        }