//工厂类用于调用者和具体实现对象的解耦 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(); }
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(); }