重构机房收费系统总结1之配置文件+反射+抽象工厂

    在重构机房收费系统之前就一直听说这次重构要用反射+配置文件。深远的作用不知道,可是在这次重构用到,目的还是挺明白的:就是为了更换数据时方便,遵循开放-封闭原则。攻克了可维护和可扩展的问题。

    以下就以机房收费系统登录为例来看看配置文件+反射的使用方法。

机房收费系统登录用到的数据库表是User_info表(用户表)。我利用的是三层思想。先看一下我的总体架构!

    

    以下看看配置文件+反射+抽象工厂在登录时訪问数据库User表时的使用方法。

    1.先进行配置文件操作

       步骤:(1)在VS资源管理器的新建项目UI中。会有一个App.config文件。右击“打开”。

    

    打开以后会出现例如以下结果。

        2)在配置文件里加入參数。

    

    具体解释:在配置文件里写明是SQLServer还是Access,防止更改应用程序中的代码,利于扩展,避免改动。

   3)在要用到配置文件的项目中加入引用System.configuration(在这里我们Factroy项目中用到了配置文件):选中Factroy右击引用---打开引用界面。

    

   4)引用界面例如以下:

     

    在左边“程序集”栏中找到“框架”从右边找到“System.configuration”这项勾选上。

这样配置文件基本就完毕!

    接下来是代码阶段:

    2.反射+配置文件+抽象工厂代码(訪问SQLServer中机房收费系统用户(User表))

    

'*************************************************
'文 件 名:SqlServerUserFactory
'命名空间:Factory
'内    容:读配置文件来给DB字符串赋值,在配置文件里写明是SQLServer还是Access。想要更换数据库直接改配置文件即可。

读配置文件来给DB字符串赋值。在配置文件里写明是SqlServer还是Access,想要更换数据库直接改配置文件即可。前提是:Sqlserver前缀的DAL层类里写的是訪问SQLServer数据库的代码。Access前缀的DAL层类里写的是訪问Access数据库的代码。 '功 能:用反射+配置文件+抽象工厂。方便更换数据库。

'文件关系: '作 者:宋笑 '小 组:XX '生成日期:2014/6/1 16:14:45 '版 本 号:V1.0.0.0 '改动日志: '版权说明: '************************************************* Imports System.Reflection '加入反射的引用 Imports System.Configuration '加入配置文件的引用 Imports IDAL Public Class SqlServerUserFactory '利用反射+配置文件+抽象工厂 Private Shared ReadOnly AssemblyName As String = "DAL" '定义程序集名称变量。D层命名空间的名字 Private Shared db As String = ConfigurationManager.AppSettings("DB") '表示读取配置文件。假设配置文件里是SQLServer数据库,就訪问SQLServer,假设是别的就訪问别的,不用更改程序中的代码。

'创建用户表的工厂 Public Function CreateUserInfo() As IUser Dim className As String = AssemblyName + "." + db + "UserDAL" 'DAL层中的SqlServerUserDAl的类名。

Dim iuser As IUser '实例化接口IUser iuser = CType(Assembly.Load(AssemblyName).CreateInstance(className), IUser) '把DAL层的SqlServerUserDAl类转换成IUser接口类型,通过调用接口类中的函数来调用D层中实现该接口函数。 Return iuser End Function End Class


             具体解释: AssemblyName是程序集的名称。db +"UserDAL"DAL层中的SqlServerUserDAL的类名。之所以配置文件里写Sqlserver ,是由于DAL层中类名是SqlServerUserDAL。假设不用SqlServer数据库。那么我在Factroy中再另建一个类,比方訪问Access数据库。那么类名就叫AccessUserDAL

把配置文件里的

Value 值改为 Access 。这样就是扩展而不是改动。

DAL 层中的类名是依据自己情况起的,不必一定前面加上 Sqlserver 或者 Access

仅仅要是一个标志。标识成这个类的代码是訪问的

QLServer 数据库,这个类的代码是訪问的 Access 数据库的即可。配置文件依据情况更改即可。

    最后总结:相信配置文件不止这一个作用。我们还须要研究。

。学习就是慢慢探索的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值