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

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

  • 相关阅读:
    浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )
    二分图匹配
    Codeforces 939E Maximize ( 三分 || 二分 )
    冲刺第二周第七天
    冲刺第二周第六天
    冲刺第二周第五天
    构建之法阅读笔记04
    冲刺第二周第四天
    构建之法阅读笔记03
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3447792.html
Copyright © 2011-2022 走看看