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 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 ); }
public static void PrintMenu(ICarFactory factory, string name) { Console.WriteLine(string.Format("****** Фабрика {0} ******", name)); var bode = factory.CreateBody(); Console.WriteLine(bode.Name + '\n'); var engine = factory.CreatEngine(); Console.WriteLine(engine.Name + '\n'); var vehicle = factory.CreateVehicle(); Console.WriteLine(vehicle.Name + '\n'); }
public Car(ICarFactory factory) { _body = factory.CreateBody(); _motor = factory.CreateMotor(); _cabin = factory.CreateCabin(); }