最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何利用抽象工厂更换数据库

来源:动视网 责编:小采 时间:2020-11-09 08:06:45
文档

如何利用抽象工厂更换数据库

如何利用抽象工厂更换数据库:VS中我们都加入了抽象工厂模式,都懂的这种模式可以用来更换数据库。具体应用起来大家都知道应用反射,首先我介绍下我的情况吧。 现在的情况是我的D层程序集和命名空间都为DAL,D层的类也都是以Sql为前缀来命名,例如SqlCancelCardDAL,在工厂中,我的代码
推荐度:
导读如何利用抽象工厂更换数据库:VS中我们都加入了抽象工厂模式,都懂的这种模式可以用来更换数据库。具体应用起来大家都知道应用反射,首先我介绍下我的情况吧。 现在的情况是我的D层程序集和命名空间都为DAL,D层的类也都是以Sql为前缀来命名,例如SqlCancelCardDAL,在工厂中,我的代码


VS中我们都加入了抽象工厂模式,都懂的这种模式可以用来更换数据库。具体应用起来大家都知道应用反射,首先我介绍下我的情况吧。 现在的情况是我的D层程序集和命名空间都为DAL,D层的类也都是以Sql为前缀来命名,例如SqlCancelCardDAL,在工厂中,我的代码时

VS中我们都加入了抽象工厂模式,都懂的这种模式可以用来更换数据库。具体应用起来大家都知道应用反射,首先我介绍下我的情况吧。

现在的情况是我的D层程序集和命名空间都为DAL,D层的类也都是以Sql为前缀来命名,例如SqlCancelCardDAL,在工厂中,我的代码时这么写的,大家可以看一下:

Imports DFactory
Imports IDAL
Imports System.Reflection
Imports System.Configuration

Public Class DataAccess 
 Private ReadOnly assemblyName As String = "DAL"
 Dim strDB As String = System.Configuration.ConfigurationSettings.AppSettings("DB")

 '返回一个IStudent接口
 Public Function CheckStuID() As IStudent
 Dim ClassName As String = assemblyName + "." + strDB + "StuInfoDAL"
 Return CType(Assembly.Load("DAL").CreateInstance(ClassName), IStudent)
 End Function

 '返回注册接口IRegist
 Public Function AboutRegist() As IRegist
 Dim ClassName As String = assemblyName + "." + strDB + "RegistDAL"
 Return CType(Assembly.Load("DAL").CreateInstance(ClassName), IRegist)
 End Function

 '返回充值接口ICharge
 Public Function InsertInfo() As ICharge
 Dim ClassName As String = assemblyName + "." + strDB + "ChargeDAL"
 Return CType(Assembly.Load("DAL").CreateInstance(ClassName), ICharge)
 End Function
 ......
 End Class

App.config中反射为:

改变为


接着想,我们原来的命名空间跟改变的OracleDAO命名空间完全不一样,看一下原来的工厂代码这样写的:

 Private ReadOnly assemblyName As String = "DAL"

这样就在程序里把命名空间给写死了,但是我们同样可以利用反射的原理将命名空间移动到XML中,不需要打开VS来看,因为我们的运行都是从项目文件中UI层Debug开始的,所以只需在UI\bin\Debug\UI.exe.config中添加一句:


同时在工厂层中将写死的命名空间那句改为:

 Private ReadOnly assemblyName = System.Configuration.ConfigurationSettings.AppSettings("MM")

最后一步就是:将每个方法中的return句中“DAL”改为assemblyName即为完美。

这样我们的程序如何更改数据库只需在配置文件中更改命名空间和反射中类的前缀即可,这样就充分运用了抽象工厂+反射,实现更换数据库的功能。

文档

如何利用抽象工厂更换数据库

如何利用抽象工厂更换数据库:VS中我们都加入了抽象工厂模式,都懂的这种模式可以用来更换数据库。具体应用起来大家都知道应用反射,首先我介绍下我的情况吧。 现在的情况是我的D层程序集和命名空间都为DAL,D层的类也都是以Sql为前缀来命名,例如SqlCancelCardDAL,在工厂中,我的代码
推荐度:
标签: 加入 利用 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top