Exemple #1
0
        static void Main(string[] args)
        {
            IFactory factory = new AudiFactory();

            Console.WriteLine(factory.CreateAuto());
            factory = new BenzFactory();
            Console.WriteLine(factory.CreateAuto());
            Console.ReadKey();
        }
Exemple #2
0
        public static void CarFactoryExample()
        {
            var bmwFactory = new BMWFactory();

            PrintCarCharacteristics(bmwFactory);

            var audiFactory = new AudiFactory();

            PrintCarCharacteristics(audiFactory);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var factory = new FerrariFactory();
            var car     = factory.CreateCar();

            var audiFactory = new AudiFactory();
            var secondCar   = audiFactory.CreateCar();

            Console.WriteLine("Car Name: {0}", car.ShowName());
            Console.WriteLine("Car Name: {0}", secondCar.ShowName());
            Console.ReadKey();
        }
Exemple #4
0
        private static void Main(string[] args)
        {
            var fordCar = new FordFactory();
            var c1      = new Client(fordCar);

            Console.WriteLine("Max speed {0} is {1} km/hour", c1.Car.Name, c1.RunMaxSpeed());


            var audiCar = new AudiFactory();
            var c2      = new Client(audiCar);

            Console.WriteLine("Max speed {0} is {1}  km/hour {2}", c2.Car.Name, c2.RunMaxSpeed(), c2.Car.GetBodyType(c2.Body));
        }
Exemple #5
0
        public void An_AudiFactory_Should_Return_An_Audi_Instance()
        {
            //Arrange
            AutoFactory autoFactory = new AudiFactory();

            //Act
            var expectedInstance = autoFactory.CreateAutoMobile();

            var expectedType = typeof(Audi).FullName;

            var instanceType = expectedInstance.GetType().FullName;

            //Assert
            Assert.Equal(expectedType, instanceType);
        }
        static void Main(string[] args)
        {
            // Абстрактная фабрика № 1
            CarFactory bmw_car = new BMWFactory();
            var        c1      = new Client(bmw_car);

            c1.Run();

            // Абстрактная фабрика № 2
            CarFactory audi_factory = new AudiFactory();
            var        c2           = new Client(audi_factory);

            c2.Run();
            Console.Read();
        }
Exemple #7
0
        static void Main(string[] args)
        {
            CarFactory ford_car = new FordFactory();
            Client     c1       = new Client(ford_car);

            Console.WriteLine("Максимальная скорость {0} составляет {1} км/час",
                              c1.ToString(), c1.RunMaxSpeed());

            CarFactory audi_car = new AudiFactory();
            Client     c2       = new Client(audi_car);

            Console.WriteLine("Максимальная скорость {0} составляет {1} км/час",
                              c2.ToString(), c2.RunMaxSpeed());
            Console.ReadKey();
        }
Exemple #8
0
        static void Main(string[] args)
        {
            //All classes, BMW, VW and Audi, implement the same interface. But they each need their own
            //specific construction,and we are using factories to centralize the logic of that construction.
            CarFactory bmwCarFactory = new BMWFactory();
            ICar       bmw           = bmwCarFactory.Order;

            // Go and have some fun with your BMW
            bmw.TurnOn();
            bmw.TurnOff();

            CarFactory audiCarFactory = new AudiFactory();
            ICar       audi           = audiCarFactory.Order;

            // Go and have some fun with your Audi
            audi.TurnOn();
            audi.TurnOff();
        }
Exemple #9
0
        public void Start()
        {
            // Abstract factory #1

            AbstractFactory factory1 = new BmwFactory();

            System.Console.Write($"{factory1.GetType().Name} uses: ");
            Client client1 = new Client(factory1);

            client1.Run();

            // Abstract factory #2

            AbstractFactory factory2 = new AudiFactory();

            System.Console.Write($"{factory2.GetType().Name} uses: ");
            Client client2 = new Client(factory2);

            client2.Run();
        }
Exemple #10
0
        private static void Case1()
        {
            IAutomobile  mobile;
            TeslaFactory tesla = TeslaFactory.GetInstance();

            mobile = tesla.Make();
            mobile.Start();
            mobile.Stop();

            BmwFactory bmw = BmwFactory.GetInstance();

            mobile = bmw.Make();
            mobile.Start();
            mobile.Stop();

            AudiFactory audi = AudiFactory.GetInstance();

            mobile = audi.Make();
            mobile.Start();
            mobile.Stop();
        }
        public static void AbstractFactory()
        {
            // Language agnostic version
            CarFactory audiFactory = new AudiFactory();
            var        driver1     = new Driver(audiFactory);

            driver1.CompareSpeed();
            ;

            CarFactory mercedesFactory = new MercedesFactory();
            var        driver2         = new Driver(mercedesFactory);

            driver2.CompareSpeed();

            // C# specific version using generics
            var factory = new GenericFactory <MercedesSportsCar>();
            MercedesSportsCar mercedesSportsCar = factory.CreateObject();

            Console.WriteLine(mercedesSportsCar.GetType().ToString());

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            // Simple Factory
            Console.WriteLine("Simple Factory");
            Console.WriteLine();
            CarFactory simpleFactory = new CarFactory();
            ICar       simpleCar     = simpleFactory.GetCar("bmw");

            Console.WriteLine("Setting car model in client.");
            simpleCar.SetModel("i8");
            Console.Read();

            // Factory Method
            Console.WriteLine("Factory Method");
            Console.WriteLine();
            ICarFactory factoryMethodBMW = new BMWFactory();

            factoryMethodBMW.GetCar();
            ICarFactory factoryMethodAudi = new AudiFactory();

            Console.WriteLine("Setting Audi model in client.");
            simpleCar.SetModel("TT");
            Console.Read();
        }
        private static void TestDriveAudiCars()
        {
            ICarFactory carFactory = new AudiFactory();

            TestDrive(carFactory);
        }
        static void Main(string[] args)
        {
            // AUDI
            CarFactory carFactory = new AudiFactory();

            Console.WriteLine();

            var audiCoupe = carFactory.CreateCoupe();

            audiCoupe.GetName();
            audiCoupe.GetMaxSpeed();
            Console.WriteLine();

            var audiLimousine = carFactory.CreateLimousine();

            audiLimousine.GetName();
            audiLimousine.HasAirCon();
            Console.WriteLine();

            var audiSuw = carFactory.CreateSuW();

            audiSuw.GetName();
            audiSuw.SetWheelSize();

            // BMW
            carFactory = new BmwFactory();
            Console.WriteLine();

            var bmwCoupe = carFactory.CreateCoupe();

            bmwCoupe.GetName();
            bmwCoupe.GetMaxSpeed();
            Console.WriteLine();

            var bmwLimousine = carFactory.CreateLimousine();

            bmwLimousine.GetName();
            bmwLimousine.HasAirCon();
            Console.WriteLine();

            var bmwSuw = carFactory.CreateSuW();

            bmwSuw.GetName();
            bmwSuw.SetWheelSize();
            Console.WriteLine();

            // HONDA
            ICarFactory hondaFactory = new HondaFactory();

            Console.WriteLine();

            var hondaCoupe = hondaFactory.CreateCoupe();

            hondaCoupe.GetName();
            hondaCoupe.GetMaxSpeed();
            Console.WriteLine();

            var hondaLimousine = hondaFactory.CreateLimousine();

            hondaLimousine.GetName();
            hondaLimousine.HasAirCon();
            Console.WriteLine();

            var hondaSuw = hondaFactory.CreateSuW();

            hondaSuw.GetName();
            hondaSuw.SetWheelSize();
            Console.WriteLine();

            Console.ReadKey();
        }