public static Car MakeCar(CarSophisticationLevel carSophisticationLevel)
        {
            ICarFactory carFactory = null;

            switch (carSophisticationLevel)
            {
            case CarSophisticationLevel.Popular:
                carFactory = new PopularCarFactory();
                break;

            case CarSophisticationLevel.Luxury:
                carFactory = new LuxuryCarFactory();
                break;

            default:
                return(null);
            }

            if (carFactory == null)
            {
                return(null);
            }

            return(new Car
            {
                Engine = carFactory.MakeEngine(),
                Shift = carFactory.MakeShift()
            });
        }
示例#2
0
        public Car(ICarFactory factory)
        {
            _engine = factory.MakeEngine();
            _corpus = factory.MakeCorpus();

            Console.WriteLine("Honda created");
        }
 public CarFormHandler(IEntityRepository <IgrfcEntity> entityRepository, ICarFactory carFactory, ICarWorkLinkFactory carWorkLinkFactory, ICarWorkLinkRepository carWorkLinkRepository)
 {
     this.entityRepository      = entityRepository;
     this.carFactory            = carFactory;
     this.carWorkLinkFactory    = carWorkLinkFactory;
     this.carWorkLinkRepository = carWorkLinkRepository;
 }
示例#4
0
        public void ChoiseCarFactory()
        {
            while (true)
            {
                Console.WriteLine("Enter your choise of Car Factory:\n1. Audi\n2. Ford\n3. Nissan");
                char choise = Convert.ToChar(Console.ReadLine());
                switch (choise)
                {
                case '1':
                    CarFactory = new AudiCarFactory();
                    return;

                case '2':
                    CarFactory = new FordCarFactory();
                    return;

                case '3':
                    CarFactory = new NissanCarFactory();
                    return;

                default:
                    Console.WriteLine("Incorrect input. Try again");
                    break;
                }
            }
        }
示例#5
0
 public ClientFactory(ICarFactory factory)
 {
     //Абстрагування процесів інстанціювання
     car    = factory.CreateCar();
     engine = factory.CreateEngine();
     wheels = factory.CreateWheels();
 }
示例#6
0
 public RegisterCommand(IList <string> arguments, ICarFactory carFactory, ICarManager carManager)
     : base(arguments)
 {
     this.carFactory         = carFactory;
     this.carManager         = carManager;
     this.parametersGatherer = new ParametersGatherer();
 }
        public static void TestFactory()
        {
            Console.WriteLine("-- TEST FACTORY --");

            //Factory that creates all shapes but with different factory implementations
            Console.WriteLine("\nShapeFactory");
            IFactory factory  = new FactoryShape();
            IShape   square   = factory.CreateInstance("shapesquare", 5);
            IShape   triangle = factory.CreateInstance("shapetriangle", 5);

            Console.WriteLine(square.GetInfo());
            Console.WriteLine(triangle.GetInfo());

            Console.WriteLine("\nShapeDoubleSideFactory");
            IFactory doubleFactory  = new FactoryShapeDoubleSide();
            IShape   doubleSquare   = doubleFactory.CreateInstance("shapesquare", 5);
            IShape   doubleTriangle = doubleFactory.CreateInstance("shapetriangle", 5);

            Console.WriteLine(doubleSquare.GetInfo());
            Console.WriteLine(doubleTriangle.GetInfo());

            //Load a Factory to create a specific type of ICar
            ICarFactory bmwFactory  = FactoryLoader.GetCarFactory("FactoryBMW");
            ICarFactory miniFactory = FactoryLoader.GetCarFactory("FactoryMiniCooper");
            ICar        bmw         = bmwFactory.CreateInstance();
            ICar        mini        = miniFactory.CreateInstance();

            Console.WriteLine(bmw.TurnOn());
            Console.WriteLine(bmw.TurnOff());
            Console.WriteLine(mini.TurnOn());
            Console.WriteLine(mini.TurnOff());
        }
示例#8
0
 public CarWorld(ICarFactory carFactory)
 {
     _carFactory = carFactory;
     _engine     = _carFactory.CreateEngine();
     _chassis    = _carFactory.CreateChassis();
     _wheel      = _carFactory.CreateWheel();
 }
示例#9
0
        static void CreateAndRun(ICarFactory factory, int speed)
        {
            var car = new Car(factory.CreateBody(), factory.CreateEngine(), factory.CreateTank());

            // Ну дальше нужны какие-нибудь формулы пор расчёту скорости в зависимости от веса
            // и прочих факторов, расход топлива... но я по простому сделал.

            Console.WriteLine($"{car.Serial} начала движение.");

            if (speed >= car.Engine.MaxSpeed || speed <= 0)
            {
                speed = car.Engine.MaxSpeed;
            }

            // Просто переменная для простого расчета.
            var percent = 0.01;

            double path        = 0.0;
            double actualSpeed = speed - (car.Body.Weight * percent);

            while (car.Tank.Value != 0)
            {
                path += actualSpeed * car.Tank.Spend(1);
            }

            Console.WriteLine($"Всего пройдено: {path}.");
            Console.WriteLine($"Потрачено топлива: {car.Tank.Capacity}\n\n");

            // Да-да, я знаю, что это не совсем так работает, но это просто простая реализация
            // логики движения, её можно заменить на более сложную с довольно минимальным
            // добавлением / редактированием кода.
        }
        public Car(ICarFactory carFactory)
        {
            _engine      = carFactory.CreateEngine();
            _fuelStorage = carFactory.CreateFuelStorage();

            _fuelComsumptionTimer          = new Timer(500);
            _fuelComsumptionTimer.Elapsed += FuelComsumptionTimer_Elapsed;
        }
        public void ClientMethod(ICarFactory factory)
        {
            IProcessor processor = factory.CreateProcessor();
            IMainboard mainboard = factory.CreateMainboard();

            Console.WriteLine(mainboard.ShowBatteryVolume());
            Console.WriteLine(mainboard.ShowProcessor(processor));
        }
示例#12
0
 public CarGeneratorTests()
 {
     makeFactory        = new MakeFactory();
     modelFactory       = new ModelFactory(makeFactory);
     carNumberGenerator = new CarRuNumberGenerator();
     carFactory         = new CarFactory(modelFactory, makeFactory);
     carGenerator       = new CarGenerator(carNumberGenerator, carFactory);
 }
示例#13
0
 public Car(ICarFactory carFactory)
 {
     Body     = carFactory.CreateBody();
     Engine   = carFactory.CreateEngine();
     Interior = carFactory.CreateInterior();
     Wheels   = carFactory.CreateWheels();
     Windows  = carFactory.CreateWindows();
 }
示例#14
0
        public static Car CreateCar(ICarFactory factory)
        {
            var body     = factory.CreateBody();
            var engine   = factory.CreateEngine();
            var interior = factory.CreateInterior();

            return(new Car(body, engine, interior));
        }
示例#15
0
        public void GetInfo(ICarFactory abstractFactory)
        {
            IBody   body   = abstractFactory.CreateBody();
            IEngine engine = abstractFactory.CreateEngine();

            Console.WriteLine(body.GetDescription());
            Console.WriteLine(body.GetEngineType(engine));
        }
示例#16
0
        private static void Main()
        {
            var carFactories = new ICarFactory[] { new BmwFactory(), new AudiFactory() };

            foreach (var carFactory in carFactories)
            {
                Console.WriteLine(BuildCar(carFactory));
            }
        }
示例#17
0
        public CarGenerator(ICarNumberGenerator carNumberGenerator, ICarFactory carFactory)
        {
            this.carNumberGenerator = carNumberGenerator;
            this.carFactory         = carFactory;

            var modelBaseType = typeof(ModelBase);

            allModelTypes = Assembly.GetAssembly(modelBaseType).GetClassesByBaseClass(modelBaseType);
        }
示例#18
0
        public void SetUp()
        {
            var stream = new StreamWriter("config.txt");

            stream.WriteLine("Kama517 165/70 R15");
            stream.WriteLine("Kama519 175/80 R16");
            stream.Close();
            carFactory = new AutoVaz(new KamaFactory("config.txt"), new AlcastaFactory());
        }
示例#19
0
文件: Program.cs 项目: krzliszka/cis
        public void ClientMethod(ICarFactory factory)
        {
            var product1 = factory.DesignSUV();
            var product2 = factory.DesignSedan();


            Console.WriteLine(product1.SUV());
            Console.WriteLine(product2.Sedan());
            //Console.WriteLine(product2.Function(product1));
        }
示例#20
0
 public static void MakeCar(ICarFactory car)
 {
     Console.WriteLine(car.CreateBody().Name);
     Console.WriteLine(car.CreateEngine().Name);
     Console.WriteLine(car.CreateCabin().Name);
     Console.WriteLine(car.CreateTransmission().Name);
     Console.WriteLine(car.CreateWheels().Name);
     Console.WriteLine(car.Assemble().Name);
     Console.WriteLine();
 }
示例#21
0
        static void Main(string[] args)
        {
            ICarFactory factory = FactoryProducer.getCarFactory("honda");
            ICar        car     = factory.createCar("crv");

            car.Drive();


            Console.ReadLine();
        }
示例#22
0
        static void Main(string[] args)
        {
            Console.WriteLine("Приложение запущено.");

            factory = new CheapCarFactory();
            CreateAndRun(factory, 50);

            factory = new ExpensiveCarFactory();
            CreateAndRun(factory, 70);
        }
示例#23
0
        public CityService()
        {
            _cityFactory = CityFactorySelector.GetCityFactory();
            _carFactory = CarFactorySelector.GetCarFactory();

            Mapper.CreateMap<City, CityDto>();
            Mapper.CreateMap<Passenger, PassengerDto>();
            Mapper.CreateMap<Car, CarDto>();
            Mapper.CreateMap<CityPosition, CityPositionDto>();
        }
示例#24
0
        public static void PrintCarCharacteristics(ICarFactory factory)
        {
            var body   = factory.CreateBody();
            var engine = factory.CreateEngine();
            var cabin  = factory.CreateCabin();

            Console.WriteLine(
                "Ширина кузова: {0}, высота кузова: {1}, количество лошадиных сил: {2}, вместимость: {3}",
                body.Width, body.Height, engine.HorsePower, cabin.Capacity
                );
        }
示例#25
0
        public void Main()
        {
            ICarFactory factory = (ICarFactory)Assembly.GetEntryAssembly()
                                  .CreateInstance("DesignModeLearn.FactoryMethod.Cars.BmwFactory");
            ICar car = factory.CreateCar();

            car.Run();

            XmlConverts.XmlConvertFactory xmlFactory = new XmlConverts.ExcelConvertFactory();
            Console.WriteLine(xmlFactory.ReadToXml("hello.xls"));
        }
示例#26
0
        public override ICar CreateCar(ICarFactory carFactory)
        {
            carFactory.buildCarBody();
            carFactory.buildSafetyMeasurements();
            carFactory.buildWheels();
            carFactory.buildWindows();
            carFactory.buildPersonalizationPackage();

            Console.WriteLine("Your car has been created!");

            return(carFactory.Car);
        }
        public override ICar CreateCar(ICarFactory carFactory)
        {
            carFactory.buildCarBody();
              carFactory.buildSafetyMeasurements();
              carFactory.buildWheels();
              carFactory.buildWindows();
              carFactory.buildPersonalizationPackage();

              Console.WriteLine("Your car has been created!");

              return carFactory.Car;
        }
示例#28
0
        public Program(ICarFactory factory)
        {
            ICar hatchback = factory.CreateHatchback();
            hatchback.Drive();

            ICar estate = factory.CreateEstate();
            estate.Drive();

            ICar convertible = factory.CreateConvertible();
            convertible.Drive();
            Console.WriteLine("---------------------");
        }
示例#29
0
        static void Main(string[] args)
        {
            CarAbstractFactory carAbstractFactory = new CarAbstractFactory(20000);

            ICarFactory Honda = carAbstractFactory.CreateHonda();

            ICarFactory Toyota = carAbstractFactory.CreateToyota();

            Console.WriteLine(Honda.GetType());

            Console.WriteLine(Toyota.GetType());
        }
示例#30
0
        public ICar OrderCar(ICarFactory carFactory)
        {
            ICar car= CreateCar(carFactory);

              Console.WriteLine(car.Name);
              Console.WriteLine(car.CarBody);
              Console.WriteLine(car.PersonalizationPackage);
              Console.WriteLine(car.SafetyMeasurements);
              Console.WriteLine(car.Wheels);
              Console.WriteLine(car.Windows);

              return car;
        }
        public Order(ICarFactory factory, Segments segment, string type)
        {
            switch (type)
            {
            case "sedan":
                Car = factory.CreateSedan(segment);
                break;

            case "suv":
                Car = factory.CreateSuv(segment);
                break;
            }
        }
        public Order(ICarFactory factory, string segment, string type)
        {
            switch (type)
            {
            case nameof(ISedan):
                _car = factory.ManufactureSedan(segment);
                break;

            case nameof(ISuv):
                _car = factory.ManufactureSuv(segment);
                break;
            }
        }
示例#33
0
 public CarController(
     IPermissionService permissionService,
     ICarFactory carFactory,
     ICarService carService,
     ICustomerActivityService customerActivityService,
     ILocalizationService localizationService)
 {
     this.permissionService       = permissionService;
     this.carFactory              = carFactory;
     this.carService              = carService;
     this.customerActivityService = customerActivityService;
     this.localizationService     = localizationService;
 }
示例#34
0
        static void Main(string[] args)
        {
            ICarFactory factory = LoadFactory();
            var         car     = factory.CreateEconomyCar();

            car.TurnOn();
            car.TurnOff();
            car = factory.CreateFamilyCar();
            car.TurnOn();
            car.TurnOff();
            car = factory.CreateSportsCar();
            car.TurnOn();
            car.TurnOff();
        }
示例#35
0
        public City(ICarFactory carFactory, int xMax, int yMax, int[] buildingPositions)
        {
            _carFactory = carFactory;
            XMax = xMax;
            YMax = yMax;

            CityPositions = new CityPosition[xMax * yMax];
            for (int xCol = 0; xCol < xMax; xCol++)
            {
                for (int yRow = 0; yRow < yMax; yRow++)
                {
                    var index = yRow * yMax + xCol;
                    var type = buildingPositions.Contains(index)
                        ? PositionType.Building
                        : PositionType.Position;
                    CityPositions[yRow * yMax + xCol] = new CityPosition(type);
                }
            }
        }
示例#36
0
        public City Create(ICarFactory carFactory, int cityWidth, int cityHeight)
        {
            int[] BuildingPositions = new[]
            {
                0 * cityWidth + 1,
                0 * cityWidth + 5,
                1 * cityWidth + 3,
                4 * cityWidth + 0,
                4 * cityWidth + 1,
                4 * cityWidth + 8,
                4 * cityWidth + 9,
                6 * cityWidth + 0,
                6 * cityWidth + 1,
                6 * cityWidth + 6,
                6 * cityWidth + 7,
                6 * cityWidth + 8,
                7 * cityWidth + 7,
                7 * cityWidth + 8,
                9 * cityWidth + 0,
                9 * cityWidth + 2,
                9 * cityWidth + 3,
                9 * cityWidth + 4,
            };

            int xCarPos, yCarPos, xPassengerPos, yPassengerPos, xDestinationPos, yDestinationPos;

            GenerateRandomPosition(BuildingPositions, cityWidth, cityHeight, out xCarPos, out yCarPos);
            GenerateRandomPosition(BuildingPositions, cityWidth, cityHeight, out xPassengerPos, out yPassengerPos);
            GenerateRandomPosition(BuildingPositions, cityWidth, cityHeight, out xDestinationPos, out yDestinationPos);

            City city = new City(carFactory, cityWidth, cityHeight, BuildingPositions);
            city.AddCarToCity(CarType.Sedan, xCarPos, yCarPos);
            city.AddPassengerToCity(xPassengerPos, yPassengerPos, xDestinationPos, yDestinationPos);

            return city;
        }
示例#37
0
 public abstract ICar CreateCar( ICarFactory carFactory);
示例#38
0
 public VehicleFactory(ICarFactory carFactory, IMotorcycleFactory motorcycleFactory, ITruckFactory truckFactory)
 {
     this.carFactory = carFactory;
     this.motorcycleFactory = motorcycleFactory;
     this.truckFactory = truckFactory;
 }
示例#39
0
 Program(ICarFactory carFactory)
 {
     var car = carFactory.CreateCar();
     car.Drive();
 }