• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

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

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

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

<span>Imports DFactoryImports IDALImports System.ReflectionImports System.ConfigurationPublic 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</span>


App.config中反射为:

改变为


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

 Private ReadOnly assemblyName As String = "DAL"


这样就在程序里把命名空间给写死了,但是我们同样可以利用反射的原理将命名空间移

本文来源gao!daima.com搞$代!码网

动到XML中,不需要打开VS来看,因为我们的运行都是从项目文件中UI层Debug开始的,所以只需在UI\bin\Debug\UI.exe.config中添加一句:



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

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


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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何利用抽象工厂更换数据库

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址