Exemplo n.º 1
0
        //工厂类用于调用者和具体实现对象的解耦
        static void Main(string[] args)
        {
            //Simple Factory
            IPhone phone = SimpleFactory.Create <IMiPhone>();

            Console.WriteLine(phone.Name);

            phone = SimpleFactory.Create <IHWPhone>();
            Console.WriteLine(phone.Name);

            //Factory Method
            FactroyMethodBase method = new MiPhoneFactoryMethod();

            Console.WriteLine(method.CreatePhone().Name);

            method = new HwPhoneFactoryMethod();
            Console.WriteLine(method.CreatePhone().Name);

            //Virtual
            VirtualFactoryBase factory = new XiaoMiFactory();

            Console.WriteLine(factory.CreatePhone().Name);
            Console.WriteLine(factory.CreateTV().Name);

            factory = new HWFactory();
            Console.WriteLine(factory.CreatePhone().Name);
            Console.WriteLine(factory.CreateTV().Name);

            Console.ReadKey();
        }
Exemplo n.º 2
0
        private void AbstractFactoryModeTest()
        {
            //小米工厂生产
            AbstractFactory xiaomiFactory     = new XiaoMiFactory();
            MotherBoard     xiaomiMotherBoard = xiaomiFactory.CreateMotherBoard();

            xiaomiMotherBoard.Print();
            Screen xiaomiScreen = xiaomiFactory.CreateScreen();

            xiaomiScreen.Print();

            //苹果生产
            AbstractFactory appFactory  = new AppleFactory();
            Screen          appleScreen = appFactory.CreateScreen();

            appleScreen.Print();
            MotherBoard motherBoard = appFactory.CreateMotherBoard();

            motherBoard.Print();
            Console.ReadKey();
        }