用反射+配置文件实现数据访问程序
来源:互联网 发布:传奇怎么查看怪物数据 编辑:程序博客网 时间:2024/06/05 05:39
抽象工厂:
在程序的代码中写明要实例化哪一个数据库,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.
反射:
它的格式为:
Assembly,Load("程序集名称").CreateInstance("命名空间.类名称"),其中类名称为要实例化的"类名".
在程序顶端上写上using System,Reflection来引用Reflection.在更换数据库,把数据库变成一个字符串变量。
'常规的写法IUser result=new SqlserverUser();
'反射的写法,得到要实例化的数据库 Using System.Refletion IUser result=(IUser)Assembly.Load("抽象工厂的程序集名称").CreateInstance("抽象工厂模式的命名空间名称.SqlserverUser");
配置文件:
配置文件是存在于UI层,名字为App.config,在程序打包发布后,认可以从安装包中找到该文件并加以修改,如果我们把数据库的更改写到配置文件里,这样在我们换数据库的时候,就不需要再改变程序了。
机房的配置文件:
添加一个App.config文件,如下:
<appSettings> <add key="DBString" value="SqlServer"/> <add key="assName" value ="JFDAL"/></appSettings>
再添加引用System.configuration,并在程序开头增加using System.Configuration来读配置文件,由key找到对应的value的值,然后更改LoginFactory类的赋值代码。
机房工厂层的LoginFactory类
’工厂层,就是来确定连接数据库的类型,然后实例化,返回到接口。Public Class LoginFactory '创建D层SqlServerUserDAL类的实例 Public Shared Function CreateUserInfo() As IuserinfoDAL '通过读配置文件获得D层程序集的名称和命名空间的名称并赋值给所声明的对象strDB,每个类都在配置文件里对应一个key. Dim AssemblyName As String = System.Configuration.ConfigurationManager.AppSettings("assName") '下面这句是把key设成变量,然后在下面的方法中只用这个变量就可以应用到D层这个类了。数据库类型为Sqlserver, Dim strDB As String = System.Configuration.ConfigurationManager.AppSettings("DBString") Dim dalUserInfoName As String = AssemblyName & "." & strDB & "UserDAL" '声明要实例化的D层类的名称 'CType是一个内连函数,将前面部分的表达式转换为后面的类型,下面是实例了SqlServerUserDAL类的一个实例来实现IuserinfoDAL接口。 Return CType(Assembly.Load( AssemblyName).CreateInstance(dalUserInfoName), IDAL.IuserinfoDAL) End FunctionEnd Class
假如我们想使用Access数据库怎么办?直接改配置文件就可以,直接把 <add key="DBString" value="SqlServer"/>改为 <add key="DBString" value="Access"/>就可以了。在程序打包发布后,仍可以从安装包中找到该文件并加以更改。根本不需要该程序了。
总结:
使用配置文件,我们就不需要再改变程序里的内容,用反射直接实例化实现接口的数据库,这样就解决了抽象工厂更改数据库时频繁更改程序的缺点。
0 0
- 用反射+配置文件实现数据访问程序
- 抽象工厂+反射+配置文件 实现数据访问程序
- 谈一谈:抽象工厂+反射+配置文件 实现数据访问程序
- 用反射+配置文件实现数据库的访问
- 用反射+配置文件实现数据库的访问
- 工厂模式+配置文件+反射 实现数据库访问程序
- 配置文件实现数据访问程序时遇到的错误
- 机房重构 之 抽象工厂+反射+配置文件 实现数据库访问
- 黑马程序员-- TCP协议程序,多线程的并发上传,反射技术,反射由来,反射实现通过配置文件运行程序,反射的泛型擦除。
- 反射 + 配置文件 实现IOC容器
- 反射 + 配置文件 实现IOC容器
- C#程序中访问配置文件
- java减少数据访问层代码—反射3—数据访问层就一个接口一个实现
- Smart Client 程序中如何实现数据访问
- objective c实现配置文件+反射 工厂创建
- objective c实现配置文件+反射 工厂创建
- 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化
- 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化
- cxf
- HTML学习笔记(三)
- 第四届蓝桥杯软件类国赛真题-C-C-1_猜年龄
- 优秀程序员不得不知道的20个位运算技巧
- 十、MapReduce 分析网站基本指标
- 用反射+配置文件实现数据访问程序
- ViewPager+Fragment避免重复createview
- excel常用功能记录(不断更新)
- Parameterized unit tests with JUnit 4
- 去掉字符串中的转义字符
- 第四届蓝桥杯软件类国赛真题-C-B-2_马虎的算式
- OPENSSL库的使用-DES篇
- vue1.0学习总结
- 学习vimium快捷键