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

Posted zscmj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016-10-17坚持学习Day8抽象工厂模式相关的知识,希望对你有一定的参考价值。

定义:

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

 

结构:

抽象工厂类

具体工厂类

抽象产品类

具体产品类

 

例子:

代码:

 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抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

2016-10-17坚持学习Day8工厂方法模式

工厂方法模式

学习笔记Spring中常用的设计模式

坚持Selenium+Python学习记录 DAY8

设计模式:学习笔记——抽象工厂模式

设计模式学习抽象工厂模式