【VB.NET版機房收費系統】——三層VS七層使用者登入
先睹為快
來一張經典的七層機房收費系統包圖,PS:本人將 SQLHelper類單單拿出來,可將SQLHelper類歸到 D層中,不影響使用。對於不清楚SQLHelper類運用者,可參見【VB.NET 機房收費系統】___愛上檢視(View)
三層版機房收費系統
我們直接 UI—>BLL—>DAL ,通過層與層之間傳遞實體,最後返回實體,達到我們要的目的。一旦系統的規模擴大,功能增加僅僅的三層不足以應付需求的增加。
層與層之間的耦合度高。
牽一髮而動全身,萬一使用者要求增加功能,那又必須在UI層例項化BLL物件,呼叫BLL層的方法;在BLL層例項化DAL物件,定義UI層宣告的方法;在
程式碼的複用性底。
這……很熟悉……很熟悉……有木有……有木有……
在充值、退卡、查詢餘額、查詢充值記錄、上機、下機等窗體都需要判斷卡號是否存在,每每有一個窗體需要查詢卡的資訊時都來一次判斷卡號是否存在,來一次呼叫資料庫。大大增加了系統執行時間,同時大大的累積了程式碼量。
七層版機房收費系統
在UI層與BLL層中間夾了個外觀,從這點看U層、B層之間的耦合度減低了吧(這不是重點,重點是那麼多種設計模式,為嘛單單隻讓外觀模式加在U、B層之間。PS:請期待小編的下一篇部落格【外觀模式——重構機房收費系統】)一個抽象工廠
先不說七層版機房收費系統是如何如何的好,用例項來說話。
三層VS七層機房收費系統
每一新階段的程式設計都一Hello World開始……那就從機房收費系統最原始的使用者登入開始吧。
在次要強調的是,在DAL層中 大多數我們是以表來分類,有幾張表就有幾個DAL類,
對於 外觀層,這裡我想給大家提供幾條線供大家思考:
1、外觀用使用者級別劃分,幾個功能就有幾種外觀類,每一種外觀類分別定義幾個相應function來呼叫B層的一個類(按照功能劃分)。
2、外觀用使用者級別劃分,幾個功能就有幾個function,B層用表來劃分,跟IDAL層分類相同,外觀中的Function調B層的時候,可能要看清楚了。
3、外觀按照介面(用例)劃分,一個外觀幾個function,B曾可以用表來分,也可以用功能劃分。
本人是以 功能劃分的,一般使用者外觀類,操作使用者外觀類,管理員使用者外觀類,使用者登陸外觀類,上下機外觀類。
一千個讀者,就有一千個哈姆雷特,希望大家多多交流。