日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

机房收费系统重构(三)—工厂+反射+DAL

發布時間:2025/5/22 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机房收费系统重构(三)—工厂+反射+DAL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 前段時間用簡單的三層實現了窗體登錄功能,心中有點小小的成就感,但是很快就被潑了涼水,機房收費不可能只用三層實現,如果你用三層,也就是說后面機房收費所有的功能都必須使用三層來實現功能。所以一周前始了七層的研究。經過一個星期的看博客,總結,調代碼,終于實現了窗體登錄,信息錄入,和簡單充值查詢功能。

? 說說自己這次七層之旅的總結吧。

? 1.毋庸置疑,研究一個窗體功能,我首先判斷的是需要用到數據庫中的哪些表(這是屬于我自己的編程習慣,不適用全部),然后再實體層中將表中的字段表示出來,有多少個表就有多少實體類,實體類只會多于表的數量!一個表映射出一個實體類,表中的字段就是實體類的屬性!這里附帶上自己代碼中的一部分吧!

Public Class LoginModelPrivate _userID As StringPrivate _level As StringPrivate _password As StringPrivate _userName As StringPrivate _computer As StringPublic Shared UserHead As String ' 設置全局變量Public Shared UserLevel As StringPublic Property UserID() As StringGetReturn _userIDEnd GetSet(value As String)_userID = valueEnd SetEnd PropertyPublic Property PassWord() As StringGetReturn _passwordEnd GetSet(value As String)_password = valueEnd SetEnd PropertyPublic Property level() As StringGetReturn _levelEnd GetSet(value As String)_level = valueEnd SetEnd PropertyPublic Property UserName() As StringGetReturn _userNameEnd GetSet(value As String)_userName = valueEnd SetEnd PropertyPublic Property Computer() As StringGetReturn _computerEnd GetSet(value As String)_computer = valueEnd SetEnd Property End Class

? 2.接下倆進行的是關于工廠+反射+接口+DAL的介紹了

? 這個過程中涉及的東西比較多。我先概括的說說自己這部分用到了什么知識吧!

(1) 用反射+抽象工廠的數據訪問程序

開始以為是新知識,但是大家可以看看咱們《設計模式》,抽象工廠一章中說到反射利用字符串來實例化對象,而變量時可以更換的!

大家記住一段簡單的代碼吧:

Assmbly.load("程序集名稱").CreadteInstance("命名空間.類名稱")我把這段話理解為制造接口的過程。

關于這部分內容會有專門的博客寫到!

在敲工廠時會經常出現這樣的錯誤:


出現了這個錯誤,查了查博客,下面我只說出自己的方法,將DAL中生成輸出路徑,改為UI的生成輸出路徑即可,關于這個錯誤,有好多詳細的博客介紹。我就不多說了。

(2)接下來我就開始理解關于工廠,接口和DAL之間的關系了,,工廠反射,就是防止更換數據庫,接著工廠其實就是生產接口,將DAL中的類生成接口,然后在DAL中調用接口,來實現接口。

? ? 關于DAL中對數據庫的增刪改查都是重復的,這里我們抽象出一個類Sqlhelper,我們學的是面向對象,就是學會使用面向對象的思想,關于Sqlhelper博客請看我的這篇博客《機房收費重構(四)-SqlHelper》。

Sqlhelper類我寫在了DAL的下面,而后面的代碼就會變得簡單起來,就是聲明,實例化,返回值的應用了。附上小部分代碼:

<strong><span style="font-size:18px;"> Public Function RechargeQuery(cardno As Model.RechargeModel) As Model.RechargeModel Implements IDAL.IRecharge.RechargeQueryDim sqlparams As SqlParameter() = {New SqlParameter("@CardNo", cardno.StuInfoQuery)}Dim strText As String = "select * from T_StuInfo where CardNo =@CardNo"Dim helper As New SqlHelperDim cmdtype As CommandType = New CommandType()cmdtype = CommandType.TextDim table As DataTableDim Ucardno As New Model.RechargeModeltable = helper.ExecuteQuery(strText, cmdtype, sqlparams)If table.Rows.Count <> 0 ThenUcardno.StuInfoQuery = table.Rows(0).Item("CardNo")End IfReturn UcardnoEnd Function</span></strong>其實在這一部分還會有關于存儲過程的介紹,但是介于篇幅的影響就不向大家介紹了。

?這篇文章純屬個人理解,如有錯誤理解,歡迎大家踴躍拍磚!

? 接下來我會向大家介紹BLL和外觀層的理解


轉載于:https://www.cnblogs.com/xzpblog/p/5117983.html

總結

以上是生活随笔為你收集整理的机房收费系统重构(三)—工厂+反射+DAL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。