Beispiel #1
0
        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();
        }
Beispiel #2
0
 public Driver(CarFactory carFactory)
 {
     sportsCar = carFactory.CreateSportsCar();
     familyCar = carFactory.CreateFamilyCar();
 }
 // В конструктор такого класса будут передаваться все конкретные фабрики,
 // которые и начнут создавать объекты автомобиль и двигатель.
 // Следовательно, в конструктор класса Client допустимо передать любую конкретную фабрику,
 // работающую с любыми марками автомобилей.
 public Client(CarFactory carFactory)
 {
     _abstractCar    = carFactory.CreateCar();
     _abstractEngine = carFactory.CreateEngine();
 }