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对象,以次类推

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

  • 相关阅读:
    case class inheritance
    [Akka]发送一条消息的内部流程
    Java 8 新特性
    大数据学习笔记
    磁盘结构
    AtomicReference 和 volatile 的区别
    How to support both ipv4 and ipv6 address for JAVA code.
    使用JProfiler分析定位java内存泄露memory leak
    redhat mount iso as one yum repository
    Linux Shell常用技巧
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3447792.html
Copyright © 2011-2022 走看看