Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 // Constructor 
 public Client(AbstractFactory factory)
 {
     AbstractProductB = factory.CreateProductB();
     AbstractProductA = factory.CreateProductA();
 }
 // Constructor
 public Client(AbstractFactory factory)
 {
     AbstractProductB = factory.CreateProductB();
     AbstractProductA = factory.CreateProductA();
 }