public static AbstractFactory GetAbstractFactoryInstance() { //AbstractFactory instance = null; //if (factoryName.Equals("转基因工厂")) //{ // instance = new GMFVegetableFactory(); //} //else if (factoryName.Equals("非转基因工厂")) //{ // instance = new NonGMFVegetableFactory(); //} //return instance; //利用.NET反射机制来进一步修改我们的程序,这时需要配置文件 string factoryName = ConfigurationManager.AppSettings["factoryName"]; AbstractFactory instance = null; //if (!string.IsNullOrEmpty(factoryName)) if (!factoryName.Equals(string.Empty)) { instance = (AbstractFactory)System.Reflection.Assembly.Load("抽象工厂模式").CreateInstance(factoryName); } return(instance); }
static void Main(string[] args) { Console.WriteLine("抽象工厂模式"); // 获取小米品牌工厂 AbstractFactory mi_Factory = FactoryProducter.GetFactory("MIBrand"); // 获取小米品牌下得小米手机商品 IMIBrand mi_Phone = mi_Factory.GetMIBrand("Phone"); // 调用方法 mi_Phone.PrintName(); // 获取晨光品牌工厂 AbstractFactory morning_Factory = FactoryProducter.GetFactory("MorningLight"); // 获取晨光品牌下得笔记本商品 IMorningLight morning_Phone = morning_Factory.GetMorningLight("NoteBook"); // 调用方法 morning_Phone.PrintIn(); Console.ReadLine(); }
// Constructor public Client(AbstractFactory factory) { AbstractProductB = factory.CreateProductB(); AbstractProductA = factory.CreateProductA(); }