VB.NET机房收费 & 抽象工厂模式
2015-02-24 16:05
176 查看
学习设计模式的时候,提到了一个专门访问数据库的模式-抽象工厂模式,记得当时举例子理解的时候并未设计到数据库,只是大概了了解了一下,现在对于机房收费系统涉及到了数据库的管理,借此机会好好学习一下。用经常说的一句经典的话语则是:欠的债总是要还的,这句话同时也警告自己对于学习要一心一意,切勿粗心大意。
欢迎访问自己对于工厂三姐妹的理解
对比可以知道,对于抽象工厂模式的初步理解,则是
重构机房收费系统,对于数据库的选择方法则是在D层建立一个单独的类,来连接字符串。而在此使用工厂层,其主要作用就是应用配置文件和反射技术实现数据库的更换功能。
在Factory中首先定义程序集的名字和命名空间的名字,将程序集的名字和命名空间的的值写在配置文件中,这样当执行到Factory函数时程序会自动通过读取配饰文件中的相应字符,按照路径实例化出相应的对象。
对于配置文件的配置如下:
以上是最为简单的应用程序配置文件的例子,在appSettings中添加自己所用的参数就可。记住不要忘记引用程序集中的 System.configuration.
其次在程序开头增加:
代码实现:
使用ConfigurationManager的静态属性AppSettings就可以直接访问配置文件中的配置信息
Dim sqlConnection as string=ConfigurationManager.AppSettings("strConnection") '对sqlConnection赋值
factory中的代码:
[vb]
view plaincopyprint?
'********************************
'说明:应用配置文件和反射技术实现数据库的更换功能
'作者:霍亚静
'小组:XX
'创建日期:2014/6/14 19:44:35
'版本号:V1.00
'********************************
Imports System.Configuration
'添加对配置文件的使用
Imports System.Reflection
'添加对反射的引用
Imports IDAL
Public Class DataAccess
Private strassembly As
String '程序集名
'''<summary>
'''构造函数,通过调用配置文件为Strassembly赋初值
'''</summary>
Sub New()
Me.strassembly = ConfigurationManager.appSettings("<span style="color:#ff0000;">Charge1</span>") &
"DAL" 'Charge1为自己的数据库名字
End Sub
'''<summary>
''' 实例化接口为IUser为UserDAL
'''</summary>
''' <returns>IUser</returns>
Public Function CreateUserDAL()
As IUser
Dim strIntance As
String = strassembly & "." &
"UserDAL" '所要实例的对象(程序集与命名空间同名)
Return CType(Assembly.Load(strassembly).CreateInstance(strIntance), IUser)
'返回IUser ,Iuser为DAL的接口
End Function
End Class
对于配置文件的使用相信我们在学习的过程中会应用的更加熟练,继续磨练中……
欢迎访问自己对于工厂三姐妹的理解
对比可以知道,对于抽象工厂模式的初步理解,则是
重构机房收费系统,对于数据库的选择方法则是在D层建立一个单独的类,来连接字符串。而在此使用工厂层,其主要作用就是应用配置文件和反射技术实现数据库的更换功能。
在Factory中首先定义程序集的名字和命名空间的名字,将程序集的名字和命名空间的的值写在配置文件中,这样当执行到Factory函数时程序会自动通过读取配饰文件中的相应字符,按照路径实例化出相应的对象。
对于配置文件的配置如下:
以上是最为简单的应用程序配置文件的例子,在appSettings中添加自己所用的参数就可。记住不要忘记引用程序集中的 System.configuration.
其次在程序开头增加:
代码实现:
使用ConfigurationManager的静态属性AppSettings就可以直接访问配置文件中的配置信息
Dim sqlConnection as string=ConfigurationManager.AppSettings("strConnection") '对sqlConnection赋值
factory中的代码:
[vb]
view plaincopyprint?
'********************************
'说明:应用配置文件和反射技术实现数据库的更换功能
'作者:霍亚静
'小组:XX
'创建日期:2014/6/14 19:44:35
'版本号:V1.00
'********************************
Imports System.Configuration
'添加对配置文件的使用
Imports System.Reflection
'添加对反射的引用
Imports IDAL
Public Class DataAccess
Private strassembly As
String '程序集名
'''<summary>
'''构造函数,通过调用配置文件为Strassembly赋初值
'''</summary>
Sub New()
Me.strassembly = ConfigurationManager.appSettings("<span style="color:#ff0000;">Charge1</span>") &
"DAL" 'Charge1为自己的数据库名字
End Sub
'''<summary>
''' 实例化接口为IUser为UserDAL
'''</summary>
''' <returns>IUser</returns>
Public Function CreateUserDAL()
As IUser
Dim strIntance As
String = strassembly & "." &
"UserDAL" '所要实例的对象(程序集与命名空间同名)
Return CType(Assembly.Load(strassembly).CreateInstance(strIntance), IUser)
'返回IUser ,Iuser为DAL的接口
End Function
End Class
'******************************** '说明:应用配置文件和反射技术实现数据库的更换功能 '作者:霍亚静 '小组:XX '创建日期:2014/6/14 19:44:35 '版本号:V1.00 '******************************** Imports System.Configuration '添加对配置文件的使用 Imports System.Reflection '添加对反射的引用 Imports IDAL Public Class DataAccess Private strassembly As String '程序集名 '''<summary> '''构造函数,通过调用配置文件为Strassembly赋初值 '''</summary> Sub New() Me.strassembly = ConfigurationManager.appSettings("<span style="color:#ff0000;">Charge1</span>") & "DAL" 'Charge1为自己的数据库名字 End Sub '''<summary> ''' 实例化接口为IUser为UserDAL '''</summary> ''' <returns>IUser</returns> Public Function CreateUserDAL() As IUser Dim strIntance As String = strassembly & "." & "UserDAL" '所要实例的对象(程序集与命名空间同名) Return CType(Assembly.Load(strassembly).CreateInstance(strIntance), IUser) '返回IUser ,Iuser为DAL的接口 End Function End Class
对于配置文件的使用相信我们在学习的过程中会应用的更加熟练,继续磨练中……
相关文章推荐
- VB.NET机房收费 & 抽象工厂模式
- VB.NET机房收费 & 抽象工厂模式
- VB.NET机房收费 & 初感受
- <机房收费系统>重构至今之感(VB.NET)
- VB.Net Winform程序的简单打包和部署--<机房收费系统>
- VB.NET机房收费系统-磨刀篇(一)
- vb.net机房收费系统——类的理解(sqlhelper)
- 组合查询(vb.net版,机房收费系统)
- 小结——Vb.net 机房收费系统
- VB.Net机房收费系统(三层)——将datagirdview 控件数据导入Excel
- VB.NET<机房收费系统个人重构版>你都学会了什么(之五)
- 机房收费系统个人版——VB.NET组合查询
- VB.NET机房收费系统——组合查询
- VB.NET机房收费系统个人版----知识新充实
- VB.NET<机房收费系统个人重构版>你都学会了什么(之六)
- VB.NET<机房收费系统个人重构版>你都学会了什么(之二)
- vb.net机房收费系统—组合查询的实现
- vb.net机房收费系统一个小功能的实现
- VB.NET机房收费系统——组合查询
- vb.net机房收费总结——数据库应用之链接篇