示例#1
0
        public override CarType GetCarType(CarManufactures manufacturer, CarModels model)
        {
            switch (manufacturer)
            {
            case CarManufactures.Ford: return(new Ford("Ford", model));

            case CarManufactures.Suzuki: return(new Suzuki("Suzuki", model));

            case CarManufactures.Nissan: return(new Nissan("Renault Nissan", model));

            case CarManufactures.Swift: return(new Swift("Swift", model));

            case CarManufactures.Volkswagen: return(new Volkswagen("Volkswagen", model));

            default: return(new Toyota("Toyata", model));
            }
        }
示例#2
0
        public void CreateCar(CarManufactures manufacture, string color, string[] features, CarModels model)
        {
            Car         newCar      = null;
            CarType     carType     = null;
            TypeFactory typeFactory = new TypeFactory();

            carType = typeFactory.GetCarType(manufacture, model);
            switch (manufacture)
            {
            case CarManufactures.Suzuki:

                newCar = new Car(carType, color, 100000);
                newCar.AddFeatures(features, manufacture);
                break;

            case CarManufactures.Ford:
                newCar = new Car(carType, color, 250000);
                newCar.AddFeatures(features, manufacture);
                break;

            case CarManufactures.Swift:
                newCar = new Car(carType, color, 90000);
                newCar.AddFeatures(features, manufacture);
                break;

            case CarManufactures.Nissan:
                newCar = new Car(carType, color, 350000);
                newCar.AddFeatures(features, manufacture);
                break;

            case CarManufactures.Toyota:
                newCar = new Car(carType, color, 200000);
                newCar.AddFeatures(features, manufacture);
                break;

            case CarManufactures.Volkswagen:
                newCar = new Car(carType, color, 400000);
                newCar.AddFeatures(features, manufacture);
                break;
            }
            Console.WriteLine("Car was created:\n \nManufacturer:\t" + newCar.carType.Name + "\nModel:\t" + newCar.carType.Model + "\n Color:\t" + newCar.Color + "\nPrice of car:\t" + newCar.Price + "\n Total Price(with features):\t" + newCar.totalCost);
        }
示例#3
0
        public void AddFeatures(string[] features, CarManufactures manufacturer)
        {
            int            size            = features.Length;
            FeatureFactory _featureFactory = new FeatureFactory();

            foreach (string _featureName in features)
            {
                switch (_featureName)
                {
                case "AIRBAG":
                    Feature _airBagObg = _featureFactory.GetFeature(Features.AirBag, "Air Bag", 8, 5000, "side airbag");
                    this._features.Add(_airBagObg);
                    this.totalCost += 5000;
                    break;

                case "FUEL INJECTION":
                    if (manufacturer == CarManufactures.Suzuki)

                    {
                        this._features.Add(FuelInjection.DirectInjection);
                        this.totalCost += FuelInjection.DirectInjection.Cost;
                    }
                    else if (manufacturer == CarManufactures.Volkswagen)
                    {
                        this._features.Add(FuelInjection.MultiPointInjection);
                        this.totalCost += FuelInjection.MultiPointInjection.Cost;
                    }
                    else
                    {
                        Feature _fuelInjection = _featureFactory.GetFeature(Features.FuelInjection, "Fuel Injection", 6, 2000, null);
                        this._features.Add(_fuelInjection);
                        this.totalCost += 2000;
                    }
                    break;

                case "CRUISE CONTROL":
                    Feature _cruiseControl = _featureFactory.GetFeature(Features.CruiseControl, "Cruise Control", 7, 5500, null);
                    this.totalCost += 5500;
                    break;
                }
            }
        }
 public abstract CarType GetCarType(CarManufactures manufacturer, CarModels model);
 public override CarType GetCarType(CarManufactures manufacturer, CarModels model)
 {
     return(null);
 }