zoukankan      html  css  js  c++  java
  • 用反射技术替换工厂种的switch分支(14)

    首先给大家拜个晚年,祝大家新春快乐,万事如意,鸡年大吉。

    好了,前面我们讲了很多的工厂模式,其中,有个很明显的特点,工厂中,有一个方法,里面有很多的swich case  分支,我们前面说过,我们可以用反射的技术来避免swich case 分支。ok,那么,今天,我们来用反射+抽象工厂模式  来完善一下 抽象工厂模式

    首先,给大家复习一下,什么是反射:   Assembly.Load("程序集名称").CreateInstance("命名空间.类名"); 这是它的语法。需要using System.Reflection;

    之前我们的写法是 IUser result = new SqlserverUser();

    我们用反射就可以 IUser result=(IUser)Assembly.Load("程序集名称").CreateInstance("命名空间.类名"); 这是它的语法。需要using System.Reflection;

    实际效果是一样的,但这两种写法有什么区别吗?

    同样是实例化 SqlserverUser 类,这两种写法的区别就是,用反射写,SqlserverUser 类 是当作字符串变量出现在语句中的,这样,对于一个字符串来说,那就非常灵活了。这就相当于是一个写死在程序里,一个当作变量出现在程序里 一样,哪个更加灵活不言而喻了。

    那这样,我们就可以将数据库操作封装成dll文件,然后通过配置文件,让程序灵活加载dll,这样,这个程序就活起来了。

    灵活的运用反射+工厂类设计模式,就可以让整个程序更易于扩展。 一个好的设计,可以省却大量的时间,这样,程序员也就不用天天加班加点的改代码了。


    关于更详细的 反射 技术, 配置文件 技术,园友们可以阅读一下其他大神的文章,在此不做详细讲解,有时间的话我会开辟新的专栏,专门讲解基础知识。

    好了,今天先到此了,下一篇会讲 状态模式

    本系列将持续更新,喜欢的小伙伴可以点一下关注和推荐,谢谢大家的支持。

  • 相关阅读:
    基于AOP实现Ibatis的缓存配置过期策略
    Step by Step构建自己的ORM系列配置管理层
    云计算从基础到应用架构系列云计算的演进
    设计模式系列桥接模式
    云计算从基础到应用架构系列云计算的概念
    云计算从基础到应用架构系列虚拟化的技术(上)
    设计模式系列装饰模式
    typeof和GetType区别
    白话学习MVC(四)URL路由
    五、DirectX编程
  • 原文地址:https://www.cnblogs.com/xiaomowang/p/6364427.html
Copyright © 2011-2022 走看看