Esempio n. 1
0
        public static void AbstractFactory()
        {
            CarFactory audiFactory = new AudiFactory();
            Driver driver1 = new Driver(audiFactory);
            driver1.CompareSpeed(); ;

            CarFactory mercedesFactory = new MercedesFactory();
            Driver driver2 = new Driver(mercedesFactory);
            driver2.CompareSpeed();
        }
        static void Main(string[] args)
        {
            // Ниже показано, как вызвать метод Run с различными параметрами:
            // Абстрактная фабрика № 1
            CarFactory bmwCar = new BmwFactory();
            Client     c1     = new Client(bmwCar);

            c1.Run();
            // Абстрактная фабрика № 2
            CarFactory audiFactory = new AudiFactory();
            Client     c2          = new Client(audiFactory);

            c2.Run();
            Console.Read();

            // Чтобы получше разобраться с этим паттерном, рекомендую написать на его основе
            // несколько программ, приняв для примера условие, что фабрика связана с какими-то
            // бизнес-объектами.
        }