public ClientFactory(ICarFactory factory) { //Абстрагування процесів інстанціювання car = factory.CreateCar(); engine = factory.CreateEngine(); wheels = factory.CreateWheels(); }
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 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; }
public static Car CreateCar(ICarFactory factory) { var body = factory.CreateBody(); var engine = factory.CreateEngine(); var interior = factory.CreateInterior(); return(new Car(body, engine, interior)); }
public Car(ICarFactory carFactory) { Body = carFactory.CreateBody(); Engine = carFactory.CreateEngine(); Interior = carFactory.CreateInterior(); Wheels = carFactory.CreateWheels(); Windows = carFactory.CreateWindows(); }
public void GetInfo(ICarFactory abstractFactory) { IBody body = abstractFactory.CreateBody(); IEngine engine = abstractFactory.CreateEngine(); Console.WriteLine(body.GetDescription()); Console.WriteLine(body.GetEngineType(engine)); }
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(); }
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 ); }
private static string BuildCar(ICarFactory carFactory) => string.Concat(carFactory.CreateCarcase().Carcase, carFactory.CreateEngine().Engine, carFactory.CreateInterior().CarInterior);
public Client(ICarFactory factory) { _factory = factory; _engine = _factory.CreateEngine(); _wheel = _factory.CreateWheel(); }
public Car(ICarFactory factory) { _engine = factory.CreateEngine(); _suspension = factory.CreateSuspension(); _wheel = factory.CreateWheel(); }