码迷,mamicode.com
首页 > 其他好文 > 详细

【2016-10-17】【坚持学习】【Day8】【抽象工厂模式】

时间:2016-10-18 02:37:15      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

定义:

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

 

结构:

抽象工厂类

具体工厂类

抽象产品类

具体产品类

 

例子:

技术分享

代码:

 interface SkinFactory
    {
        Button CreateButton();
        TextField CreateTextField();
        ComboBox CreateComboBox();
    }
  class SummerSkinFactory : SkinFactory 
    {
        public Button CreateButton() 
        {
            return new SummerButton();
        }

        public TextField CreateTextField() 
        {
            return new SummerTextField();
        }

        public ComboBox CreateComboBox() 
        {
            return new SummerComboBox();
        }
    }
 

 

  interface Button
    {
        void Display();
    }

 interface ComboBox
    {
        void Display();
    }

  interface TextField
    {
        void Display();
    }

 

 

 class SummerButton : Button 
    {
        public void Display() 
        {
           Console.WriteLine("显示浅蓝色按钮。");
        }    
    }

 class SummerComboBox : ComboBox 
    {
        public void Display() 
        {
            Console.WriteLine("显示蓝色边框组合框。");
        }    
    }

 class SummerTextField : TextField 
    {
        public void Display() 
        {
            Console.WriteLine("显示蓝色边框文本框。");
        }    
    }

 

 

 运行

 //使用抽象层定义
            SkinFactory factory;
            Button bt;
            TextField tf;
            ComboBox cb;

            //读取配置文件
            string factoryType = ConfigurationManager.AppSettings["factory"];

            //反射生成对象
            factory = (SkinFactory)Assembly.Load("AbstractFactorySample").CreateInstance(factoryType);

            bt = factory.CreateButton();
            tf = factory.CreateTextField();
            cb = factory.CreateComboBox();
            bt.Display();
            tf.Display();
            cb.Display();

 

【2016-10-17】【坚持学习】【Day8】【抽象工厂模式】

标签:

原文地址:http://www.cnblogs.com/zscmj/p/5971665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!