static void Main() { ICarFactory carfactory = new CarFactory(); var camaro = carfactory.GetCar <Camaro>(); camaro.StartEngine(); camaro.Drive(Direction.North, 55); camaro.Drive(Direction.East, 45); camaro.StopEngine(); Console.WriteLine("\r\n"); var mustang = carfactory.GetCar <Mustang>(); mustang.StartEngine(); mustang.Drive(Direction.South, 65); mustang.Drive(Direction.West, 55); mustang.StopEngine(); Console.WriteLine("\r\n"); var charger = carfactory.GetCar <Charger>(); charger.StartEngine(); charger.Drive(Direction.East, 55); charger.Drive(Direction.North, 55); charger.StopEngine(); Console.ReadKey(); }
public Driver(CarFactory carFactory) { sportsCar = carFactory.CreateSportsCar(); familyCar = carFactory.CreateFamilyCar(); }
// В конструктор такого класса будут передаваться все конкретные фабрики, // которые и начнут создавать объекты автомобиль и двигатель. // Следовательно, в конструктор класса Client допустимо передать любую конкретную фабрику, // работающую с любыми марками автомобилей. public Client(CarFactory carFactory) { _abstractCar = carFactory.CreateCar(); _abstractEngine = carFactory.CreateEngine(); }