1. 程式人生 > >【VB.NET版機房收費系統】——三層VS七層使用者登入

【VB.NET版機房收費系統】——三層VS七層使用者登入

先睹為快

來一張經典的七層機房收費系統包圖,PS:本人將 SQLHelper類單單拿出來,可將SQLHelper類歸到 D層中,不影響使用。對於不清楚SQLHelper類運用者,可參見【VB.NET 機房收費系統】___愛上檢視(View)


三層版機房收費系統

我們直接   UI>BLL>DAL ,通過層與層之間傳遞實體,最後返回實體,達到我們要的目的。一旦系統的規模擴大,功能增加僅僅的三層不足以應付需求的增加。

層與層之間的耦合度高。

牽一髮而動全身,萬一使用者要求增加功能,那又必須在UI層例項化BLL物件,呼叫BLL層的方法;在BLL層例項化DAL物件,定義UI層宣告的方法;在

DAL層定義BLL層宣告的方法,連線資料庫,對資料進行增刪改操作。這系統一錯,那就崩了,耦合度太高了

程式碼的複用性底。


這……很熟悉……很熟悉……有木有……有木有……

在充值、退卡、查詢餘額、查詢充值記錄、上機、下機等窗體都需要判斷卡號是否存在,每每有一個窗體需要查詢卡的資訊時都來一次判斷卡號是否存在,來一次呼叫資料庫。大大增加了系統執行時間,同時大大的累積了程式碼量。

七層版機房收費系統

UI層與BLL層中間夾了個外觀,從這點看U層、B層之間的耦合度減低了吧(這不是重點,重點是那麼多種設計模式,為嘛單單隻讓外觀模式加在UB層之間。PS:請期待小編的下一篇部落格【外觀模式——重構機房收費系統】)一個抽象工廠

+反射解了BLL層與DAL層之間的耦合,同時提高了程式碼之間的複用性。

先不說七層版機房收費系統是如何如何的好,用例項來說話。

三層VS七層機房收費系統

每一新階段的程式設計都一Hello World開始……那就從機房收費系統最原始的使用者登入開始吧。


          在次要強調的是,在DAL層中 大多數我們是以表來分類,有幾張表就有幾個DAL類,

           對於 外觀層,這裡我想給大家提供幾條線供大家思考:
  1、外觀用使用者級別劃分,幾個功能就有幾種外觀類,每一種外觀類分別定義幾個相應function來呼叫B層的一個類(按照功能劃分)。
  2、外觀用使用者級別劃分,幾個功能就有幾個function,B層用表來劃分,跟IDAL層分類相同,外觀中的Function調B層的時候,可能要看清楚了。
  3、外觀按照介面(用例)劃分,一個外觀幾個function,B曾可以用表來分,也可以用功能劃分。

          本人是以 功能劃分的,一般使用者外觀類,操作使用者外觀類,管理員使用者外觀類,使用者登陸外觀類,上下機外觀類。

         一千個讀者,就有一千個哈姆雷特,希望大家多多交流。