配置文件和反射给抽象工厂带来的好处及在机房收费系统中应用的疑惑
2010-02-01 19:45
267 查看
在简单工厂改进了的抽象工厂中,DataAccess类返回的数据处理的接口类型,在DataAccess类中的Create事件中要实例化实现该借口的数据处理类。按照原先的由简单工厂改进后的抽象工厂模式,则必须要判断数据库类型,然后根据数据库类型实例化具体的数据处理类。这样就增加Select Case判断语句,这倒没什么,重要的我们想改变数据库时改动的地方会很多。如要从SQL Server改成Access,如果我们在做软件时只设计了处理SQL Server 数据库的数据处理类,那么我们就得增加Access数据库的数据处理类(当然这些类也是实现于数据处理接口类的),此外还要在DataAccess类中增加分支判断,是Access数据库则实例化Access数据库数据处理类。而采用配置文件和反射则可以有效避免在DataAccess类中做的改动。这是因为由配置文件可得到数据库类型,由反射可动态实例化数据处理类。
虽然抽象工厂模式是为解决数据库更换而设计的,但操作不同数据库到底有些什么不同目前尚不十分清楚,除了链接字符串上有区别,还知道Sql Server和Access等在ADO.NET上的使用是不同的,Sql Server用的是System.Data.SqlClient命名空间下的SqlConnection、SqlCommand、SqlParameter、SqlDataAdapter、SqlDataReader等,而Accesss数据库则是用的System.Data.OleDb命名空间下相应的类。此外可能对不同数据库进行操作时SQL语句有些不同吧?!
对现在正在设计的机房收费系统,如果不同数据库之间的SQL语句没区别,那么现在所写的继承数据表处理接口的数据表处理类就不必在更换数据库时被替换。也就是反射的应用就没有必要了,因为反射在这的作用就是动态的产生数据库处理类(根据条件产生处理Sql Server或其他数据库的处理类,而这些数据库处理类用的就是SQL语句)。
对这个模式应用的整体感觉是试着应用上了模式来解决数据库更换带来的问题,但究竟解决了没有,解决彻底否尚有很大疑问……
相关文章推荐
- 重构机房收费系统总结1之配置文件+反射+抽象工厂
- 重构机房收费系统总结1之配置文件+反射+抽象工厂
- VB.NET机房收费系统之配置文件+反射
- vb.net机房收费系统之配置文件
- VB.net之旅-SQLHelper的应用程序配置文件和使用(机房收费系统重构个人版)
- 机房收费系统总结之2——配置文件(初尝)
- 应用反射+配置文件+抽象工厂时出现的错误和原因分析
- 机房重构之配置文件、反射和抽象工厂
- vb.net机房收费系统重构——配置文件
- 机房收费系统总结之登录功能实例解析抽象工厂+配置文件
- 个人版机房收费系统——抽象工厂+反射+配置文件实现系统登录
- 重构个人版机房收费系统——VS添加配置文件
- 机房收费系统—抽象工厂+反射+配置文件
- 机房收费系统总结之5——抽象工厂+反射+配置文件
- 个人重构机房收费系统——配置文件
- 配置DAN文件——机房收费系统(一)
- 重构机房收费系统之文档 ---疑惑重重
- 反射应用,通过配置文件引用类中的方法
- 用反射机制简单应用配置文件
- 机房收费系统中的Grid++Report报表设计器的应用