码迷,mamicode.com
首页 > Web开发 > 详细

VB.NET机房收费 & 抽象工厂模式

时间:2017-07-04 14:57:11      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:end   turn   art   静态   strong   选择   fill   gravity   conf   

   学习设计模式的时候,提到了一个专门訪问数据库的模式-抽象工厂模式,记得当时举样例理解的时候并未设计到数据库,仅仅是大概了了解了一下,如今对于机房收费系统涉及到了数据库的管理,借此机会好好学习一下。用常常说的一句经典的话语则是:欠的债总是要还的,这句话同一时候也警告自己对于学习要一心一意,切勿粗心大意。

      欢迎訪问自己对于工厂三姐妹的理解

对照能够知道,对于抽象工厂模式的初步理解,则是

重构机房收费系统,对于数据库的选择方法则是在D层建立一个单独的类,来连接字符串。

而在此使用工厂层,其主要作用就是应用配置文件和反射技术实现数据库的更换功能。

在Factory中首先定义程序集的名字和命名空间的名字,将程序集的名字和命名空间的的值写在配置文件里,这样当运行到Factory函数时程序会自己主动通过读取配饰文件里的对应字符,依照路径实例化出对应的对象。

对于配置文件的配置例如以下:

技术分享    

以上是最为简单的应用程序配置文件的样例,在appSettings中加入自己所用的參数就可。记住不要忘记引用程序集中的 System.configuration.

其次在程序开头添加:

技术分享

代码实现:

使用ConfigurationManager的静态属性AppSettings就能够直接訪问配置文件里的配置信息

Dim sqlConnection as string=ConfigurationManager.AppSettings("strConnection")     ‘对sqlConnection赋值

factory中的代码:

'********************************
'说明:应用配置文件和反射技术实现数据库的更换功能
'作者:霍亚静
'小组: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机房收费 &amp; 抽象工厂模式

标签:end   turn   art   静态   strong   选择   fill   gravity   conf   

原文地址:http://www.cnblogs.com/mfmdaoyou/p/7116099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!