Esempio n. 1
0
 public ClientFactory(ICarFactory factory)
 {
     //Абстрагування процесів інстанціювання
     car    = factory.CreateCar();
     engine = factory.CreateEngine();
     wheels = factory.CreateWheels();
 }
Esempio n. 2
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");

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

            _fuelComsumptionTimer          = new Timer(500);
            _fuelComsumptionTimer.Elapsed += FuelComsumptionTimer_Elapsed;
        }
Esempio n. 5
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));
        }
Esempio n. 6
0
 public Car(ICarFactory carFactory)
 {
     Body     = carFactory.CreateBody();
     Engine   = carFactory.CreateEngine();
     Interior = carFactory.CreateInterior();
     Wheels   = carFactory.CreateWheels();
     Windows  = carFactory.CreateWindows();
 }
Esempio n. 7
0
        public void GetInfo(ICarFactory abstractFactory)
        {
            IBody   body   = abstractFactory.CreateBody();
            IEngine engine = abstractFactory.CreateEngine();

            Console.WriteLine(body.GetDescription());
            Console.WriteLine(body.GetEngineType(engine));
        }
Esempio n. 8
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();
 }
Esempio n. 9
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
                );
        }
Esempio n. 10
0
 private static string BuildCar(ICarFactory carFactory) =>
 string.Concat(carFactory.CreateCarcase().Carcase, carFactory.CreateEngine().Engine,
               carFactory.CreateInterior().CarInterior);
Esempio n. 11
0
 public Client(ICarFactory factory)
 {
     _factory = factory;
     _engine  = _factory.CreateEngine();
     _wheel   = _factory.CreateWheel();
 }
Esempio n. 12
0
 public Car(ICarFactory factory)
 {
     _engine     = factory.CreateEngine();
     _suspension = factory.CreateSuspension();
     _wheel      = factory.CreateWheel();
 }