浅析反射、工厂和配置文件
2011-11-08 21:22
330 查看
在任何一种工厂模式中,都无法避免对操作类型的选择,在简单工厂中,判断点存在于简单工厂类中,借助Swith语句来实现;在工厂模式和抽象工厂模式中,判断点存在于客户端。简单工厂模式的优点在于将判断脱离了客户端,但是却违背了“开放封闭原则”,也就是说如果有需求改变时,需要更改应有的类(在简单工厂中添加Switch判断分支)。抽象工厂和工厂模式通过进一步对工厂类抽象出一个公共接口,结合具体子类工厂类,迷补了“开放封闭原则”,但,在新增加功能时,需要在客户端用大量的重复语句指明实例化对象。
两种模式各有优点,但同时又带来了缺陷,那么,有没有一种比较“完美”的模式呢?利用什么原理可以克服这个缺陷呢?
设计模式中提供了两种方法:反射和配置文件。
方法一:反射
反射的原理是:依赖注入,换一种说法叫做传引用而不是传值。传的哪里的引用呢?引用程序集的、命名空间的、某个所需类的引用。这里的传引用要通过字符串变量来实现,而反射的巧妙之处也就是在此处。因为字符串变量不同于直接写明实例化对象,字符串可以通过变量来处理,这无疑增加了程序的灵活性,更加便于维护,而且还可以通过对字符串加密处理来增强程序的安全性,尤其是在对数据库的访问上,安全性显得格外重要。
方法二:配置文件
个人觉得配置文件建立在反射基础之上,二者采用相同的原理——通过变量传引用。配置文件的优越之处在于通过配置文件解决更改封装反射的类的改动。
两种模式各有优点,但同时又带来了缺陷,那么,有没有一种比较“完美”的模式呢?利用什么原理可以克服这个缺陷呢?
设计模式中提供了两种方法:反射和配置文件。
方法一:反射
反射的原理是:依赖注入,换一种说法叫做传引用而不是传值。传的哪里的引用呢?引用程序集的、命名空间的、某个所需类的引用。这里的传引用要通过字符串变量来实现,而反射的巧妙之处也就是在此处。因为字符串变量不同于直接写明实例化对象,字符串可以通过变量来处理,这无疑增加了程序的灵活性,更加便于维护,而且还可以通过对字符串加密处理来增强程序的安全性,尤其是在对数据库的访问上,安全性显得格外重要。
方法二:配置文件
个人觉得配置文件建立在反射基础之上,二者采用相同的原理——通过变量传引用。配置文件的优越之处在于通过配置文件解决更改封装反射的类的改动。
相关文章推荐
- 三层架构实现登录(工厂+反射+配置文件)
- 反射机制与配置文件结合的工厂设计模式
- 第三节:工厂+反射+配置文件(手写IOC)对缓存进行管理。
- 配置文件+反射+简单工厂
- Java中工厂、配置文件和反射学习
- 工厂方法模式-Factory Method Pattern 工厂三兄弟之工厂方法模式(三):日志记录器的工厂方法模式解决方案,反射与配置文件
- objective c实现配置文件+反射 工厂创建
- Java中工厂、配置文件和反射学习
- C# 静态工厂利用反射机制动态构建配置文件中 所配置的类的对象
- 工厂方法+配置文件+反射
- 设计模式学习之简单工厂+反射+配置文件
- Java反射 配置文件 工厂方法综合实例
- [Java 15 反射机制 ] 工厂模式与 properties 读取配置文件
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- 设计模式之工厂方法配置文件与反射
- Java 文件反射机制 工厂模式
- 利用反射机制通过配置文件在对象池创建对象
- Java 反射读取配置文件及反射类
- Linux启动初始化配置文件浅析
- 一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)