重构机房收费系统总结1之配置文件+反射+抽象工厂
来源:互联网 发布:淘宝店一共有多少分 编辑:程序博客网 时间:2024/05/21 09:06
在重构机房收费系统之前就一直听说这次重构要用反射+配置文件。深远的作用不知道,但是在这次重构用到,目的还是挺明确的:就是为了更换数据时方便,遵循开放-封闭原则,解决了可维护和可扩展的问题。
下面就以机房收费系统登录为例来看看配置文件+反射的用法。机房收费系统登录用到的数据库表是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 IDALPublic 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 FunctionEnd Class
详解: AssemblyName是程序集的名称,db +"UserDAL"是DAL层中的SqlServerUserDAL的类名。之所以配置文件中写Sqlserver ,是因为DAL层中类名是SqlServerUserDAL。如果不用SqlServer数据库,那么我在Factroy中再另建一个类,比如访问Access数据库,那么类名就叫AccessUserDAL。把配置文件中的Value值改为Access。这样就是扩展而不是修改。DAL层中的类名是根据自己情况起的,不必一定前面加上Sqlserver或者Access。只要是一个标志,标识成这个类的代码是访问的QLServer数据库,这个类的代码是访问的Access数据库的就行。配置文件根据情况更改就行。
最后总结:相信配置文件不止这一个作用,我们还需要研究。。学习就是慢慢探索的过程。
5 0
- 重构机房收费系统总结1之配置文件+反射+抽象工厂
- 机房收费系统之抽象工厂模式+配置文件+反射
- 机房收费系统总结之5——抽象工厂+反射+配置文件
- 机房重构之配置文件、反射和抽象工厂
- 机房收费系统—抽象工厂+反射+配置文件
- 机房收费系统总结之登录功能实例解析抽象工厂+配置文件
- 【机房重构】 抽象工厂+反射+配置文件(上)
- 【机房重构】 抽象工厂+反射+配置文件(下)
- 个人版机房收费系统——抽象工厂+反射+配置文件实现系统登录
- 机房重构 之 抽象工厂+反射+配置文件 实现数据库访问
- 机房收费系统之抽象工厂篇
- 机房收费系统之抽象工厂篇
- 配置文件和反射给抽象工厂带来的好处及在机房收费系统中应用的疑惑
- 重构机房收费系统之常用SQL语句总结
- 机房收费系统重构(三)—工厂+反射+DAL
- 【个人机房重构】—— 抽象工厂+反射+配置文件详解以及错误分析
- 重构机房收费系统总结
- 重构机房收费系统总结
- mac下安装安卓开发环境
- jQuery 表格排序插件 Tablesorter 使用
- js自己写的一个手机电话同时可以验证的正则表达式
- Oracle中得blob字段导入到DB2的Blob字段
- 如果我只有一点点喜欢你,我就不会给你说
- 重构机房收费系统总结1之配置文件+反射+抽象工厂
- 践行群众路线,放飞我的梦想
- SVD奇异值分解(3)-推荐算法应用
- JSON.parse()和JSON.stringify()
- Swift UI学习之基础:UIButton,UILabel and UISlider
- 解决ecshop 数据迁移产生的MySQL server error report:Array 这个问题
- 杂文 - 设计MIUI主题 的 MIUI设计师
- 新人报道
- 红黑树