zoukankan      html  css  js  c++  java
  • 设计模式—抽象工厂

    定义

    抽象工厂是OOP的体现,抽象出行为(接口),面向接口编程

    现实

    汽车厂的冲压设备,冲压前车门,后车门只需要修改冲压设备的冲头(前车门冲压头,后车门冲压头),只需修改配置,调出对应的冲头

    例子

    AbstractFactory:抽象工厂类

    ISpeak:speak方法,说明是能说的对象

    Chinese:说中国话

        public class AbstractFactory
        {
            /// <summary>
            /// 获取能说话的对象
            /// </summary>
            /// <returns></returns>
            public static ISpeak GetCanSpeakObject()
            {
               var speakTypeName= ConfigurationManager.AppSettings.Get("type");
               var speakType=  Type.GetType(speakTypeName);
                var assembly = Assembly.GetCallingAssembly();
                return (ISpeak)assembly.CreateInstance("大话设计模式.American");
            }
        }
    namespace 大话设计模式
    {
        public interface ISpeak
        {
            string Speak();
        }
    }
    namespace 大话设计模式
    {
        public class American : ISpeak
        {
            public string Speak()
            {
                return "我说英语!";
            }
        }
    }
    namespace 大话设计模式
    {
        public class Chinese : ISpeak
        {
            public string Speak()
            {
                return "我说中国话!";
            }
        }
    }
    namespace 大话设计模式
    {
        public class Japanese : ISpeak
        {
            public string Speak()
            {
                return "亚美爹!";
            }
        }
    }

    如果现在这个系统给中国用就实现Chinese对象,以次类推

    工厂类:通过读取配置文件,实例化对应的实体对象。

  • 相关阅读:
    SendInput模拟键盘输入的问题 <转>
    tinyMce3.21 使用随笔
    ORM的一些思考
    VS2008 , 1330 , 数字签名错误.
    .Net Reflector 工具 过期后使用小工具。
    就当是一个新的设计模式!
    OpenSUSE 11 下 Mono 2 开发笔记。
    转:)CNBlogs引用第三方组(控)件明细^_^
    DBLinq ,没实现 Log !
    DotNet 的一些知识点
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3447792.html
Copyright © 2011-2022 走看看