• 抽象工场


    抽象工场一般都是用反射获取配置文件想要切换的目标(概念不多说,网上一大堆重复概念),本例中用Factory类来实现(以目标数据库为例):

    1,首先定义共用接口(各种目标类都要实现的)

        interface IDB
        {
            void DataBase();
        }
    

    2,实现类(目标实现类都继承共用接口):

        class MSSQL : IDB
        {
            public void DataBase()
            {
                Console.Write("MSSQL");
            }
        }
    
        class ORACLE:IDB
        {
            public void DataBase()
            {
               Console.Write("ORACLE");
            }
        }
    

    3,Factory类

     class Factory
        {
            public static IDB CreateDb()
            {
                var assemblyName = Assembly.GetExecutingAssembly().GetName().Name;  //程序集名
                var db = ConfigurationManager.AppSettings["DB"];                    
                var className = assemblyName + "." + db;                //类名
                return (IDB)Assembly.Load(assemblyName).CreateInstance(className);
            }
        }
    //(IDB)Assembly.Load("程序集名称").CreateInstance("命名空间.类名称");
    

      

    4,客服端:

        class Program
        {
            static void Main(string[] args)
            {
                IDB db = Factory.CreateDb(); 
                db.DataBase();
                Console.Read();
            }
        }
    

    5,一般抽象工场都是用app.config或者是web.config文件来切换目标的

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="DB" value="ORACLE"/>
      </appSettings>
    </configuration>
  • 相关阅读:
    oracle中常用的函数
    请求转发和URL重定向的原理和区别
    servlet的生命周期和servlet的继承关系
    Jdbc来操作事物 完成模拟银行的转账业务
    Map的嵌套 练习
    正则表达式练习
    学习 day4 html 盒子模型
    学习day03
    学习day02
    学习day01
  • 原文地址:https://www.cnblogs.com/objectboy/p/3857391.html
Copyright © 2020-2023  润新知