重构机房收费系统总结1之配置文件+反射+抽象工厂
? ? 在重構機房收費系統之前就一直聽說這次重構要用反射+配置文件。深遠的作用不知道,可是在這次重構用到,目的還是挺明白的:就是為了更換數據時方便,遵循開放-封閉原則。攻克了可維護和可擴展的問題。
? ??以下就以機房收費系統登錄為例來看看配置文件+反射的使用方法。
機房收費系統登錄用到的數據庫表是User_info表(用戶表)。我利用的是三層思想。先看一下我的總體架構!
? ??
? ??以下看看配置文件+反射+抽象工廠在登錄時訪問數據庫User表時的使用方法。
? ??1.先進行配置文件操作
? ? ? ?步驟:(1)在VS資源管理器的新建項目UI中。會有一個App.config文件。右擊“打開”。
? ??
? ??打開以后會出現例如以下結果。
? ? ? ??(2)在配置文件里加入參數。
? ??
? ??具體解釋:在配置文件里寫明是SQLServer還是Access,防止更改應用程序中的代碼,利于擴展,避免改動。
? ?(3)在要用到配置文件的項目中加入引用System.configuration(在這里我們Factroy項目中用到了配置文件):選中Factroy右擊引用---打開引用界面。
? ??
? ?(4)引用界面例如以下:
? ? ?
? ??在左邊“程序集”欄中找到“框架”從右邊找到“System.configuration”這項勾選上。
這樣配置文件基本就完畢!
? ? 接下來是代碼階段:
? ??2.反射+配置文件+抽象工廠代碼(訪問SQLServer中機房收費系統用戶(User表))
? ??
'************************************************* '文 件 名:SqlServerUserFactory '命名空間:Factory '內 容:讀配置文件來給DB字符串賦值,在配置文件里寫明是SQLServer還是Access。想要更換數據庫直接改配置文件即可。讀配置文件來給DB字符串賦值。在配置文件里寫明是SqlServer還是Access,想要更換數據庫直接改配置文件即可。前提是:Sqlserver前綴的DAL層類里寫的是訪問SQLServer數據庫的代碼。Access前綴的DAL層類里寫的是訪問Access數據庫的代碼。 '功 能:用反射+配置文件+抽象工廠。方便更換數據庫。
'文件關系: '作 者:宋笑 '小 組:XX '生成日期:2014/6/1 16:14:45 '版 本 號:V1.0.0.0 '改動日志: '版權說明: '************************************************* Imports System.Reflection '加入反射的引用 Imports System.Configuration '加入配置文件的引用 Imports IDAL Public Class SqlServerUserFactory '利用反射+配置文件+抽象工廠 Private Shared ReadOnly AssemblyName As String = "DAL" '定義程序集名稱變量。D層命名空間的名字 Private Shared db As String = ConfigurationManager.AppSettings("DB") '表示讀取配置文件。假設配置文件里是SQLServer數據庫,就訪問SQLServer,假設是別的就訪問別的,不用更改程序中的代碼。
'創建用戶表的工廠 Public Function CreateUserInfo() As IUser Dim className As String = AssemblyName + "." + db + "UserDAL" 'DAL層中的SqlServerUserDAl的類名。
Dim iuser As IUser '實例化接口IUser iuser = CType(Assembly.Load(AssemblyName).CreateInstance(className), IUser) '把DAL層的SqlServerUserDAl類轉換成IUser接口類型,通過調用接口類中的函數來調用D層中實現該接口函數。 Return iuser End Function End Class
? ? ? ? ? ??具體解釋:?AssemblyName是程序集的名稱。db +"UserDAL"是DAL層中的SqlServerUserDAL的類名。之所以配置文件里寫Sqlserver ,是由于DAL層中類名是SqlServerUserDAL。假設不用SqlServer數據庫。那么我在Factroy中再另建一個類,比方訪問Access數據庫。那么類名就叫AccessUserDAL。
把配置文件里的
Value值改為Access。這樣就是擴展而不是改動。DAL層中的類名是依據自己情況起的,不必一定前面加上Sqlserver或者Access。僅僅要是一個標志。標識成這個類的代碼是訪問的
QLServer數據庫,這個類的代碼是訪問的Access數據庫的即可。配置文件依據情況更改即可。? ? 最后總結:相信配置文件不止這一個作用。我們還須要研究。
。學習就是慢慢探索的過程。
總結
以上是生活随笔為你收集整理的重构机房收费系统总结1之配置文件+反射+抽象工厂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天天基金如何注销账户
- 下一篇: 红警ol海王皮肤属性