所謂的三層架構:
控制層邏輯層
資料層當然會有乙個模型層
那麼就是四層
若是所有的訪問資料庫都用儲存過程
那麼就不需要模型層
三層就是為了**維護和可擴充套件性好一些
做 asp.net 快五年了,現在才算基本明白了三層架構,
11 樓所講滴三層架構是俺兩年前滴理解,雖然用 model 取代了 datatable,
但是寫起來仍感覺**不流暢!
直到前幾個月才悟出來,分層並不重要,oo 才是最重要滴!!!
借 11 樓所講滴三層架構一用,雖然層分滴很華麗,
但是真正滴物件在**?物件滴繼承在**?物件之間滴組合又在**?
也許有人會說現在應用很簡單,等應用複雜起來就會有了,是真的麼?!
答案當然是,非真!
oo 實現與應用滴簡單與否並無直接關係,簡單應用照樣有物件,只是數量少一些,一兩個而已,
而 11 樓所講滴那種三層架構中,雖然有 model 和 bll,但恰恰沒有真正滴物件,接下來仔細分析一下:
model 層,一些只有屬性、欄位而無方法滴類,基本上都是資料庫表直接對映而來滴,
雖然用到了 class 關鍵字,但它們不是類,只是一些資料表滴變體而已,形象一些也可稱為資料傀儡,
只能任人擺布,結論 model 層是一些殘疾類滴集合,沒有絲毫 oo 滴思想;
bll 層,一些靜態類或者一些提供靜態方法(增刪改查)滴類,這些類只有方法而無屬性、字段,
同樣它們也不是類,只是一些加工器而已,oo 思想更與 bll 毫無關係!
下面來講講俺對三層滴理解,從上至下依次為,表示層、業務實體層、資料訪問層!
表示層,用於展示、收集資料,與 業務實體層 互動;
業務實體層,暫時跳過;
資料訪問層,訪問資料來源,填充業務實體!
關鍵就是業務實體,業務實體 = model + bll,屬性加方法才是物件,因此將 model 與 bll 合併
就得到了真正滴業務實體,為了更好滴適應業務需求,業務實體之間可以相互組合,例如:a 班級下可以有
本班學員列表,即 classa.studentlist;業務實體還可以擴充套件自己滴成員方法,例如:a 班級下找出所有姓
趙滴同學,即 classa.findallbylastname("趙");班級類上還有靜態方法,例如:新增 a 班級,
即 class.add(classa),刪除 a 班級,即 class.remove(classa)等等!
業務實體主要定義了與本實體相關的屬性和方法,至於多物件之間的複雜互動應新增乙個新層——業務外觀層,
而業務外觀層多是一些靜態類,為表示層提供一些功能!
複雜三層就變為:
表示層(webform or winform ...)
| || 業務外觀層(隨需應變)
| |業務實體層(三層架構的核心)
|資料訪問層(sqlserver or excel or xml ...)
至於實現,每個團隊滴風格不同、架構不同**自然不同,而理想滴三層架構應該就是俺上面這張圖了!
如果不懂 oo,這張圖離實現就有十萬八千里,想學 oo coding 就去看《重構》吧,看完這本書
就能實現理想滴三層架構了!
如何搭建三層架構?(4)
1 編寫實體類user.cs 在模型層中,將預設的類名class1.cs重新命名為 user.cs 該實體類與資料庫bookshop中的表users相對應。實體類user.cs中部分 如下 2 編寫資料訪問類userservice 針對模型層中的每個實體類,資料訪問層有乙個對應的資料訪問類。例如,針...
三層架構初識和搭建
一 是什麼?1.表現層 ui 展現給使用者的介面,使用者在使用乙個系統的時候他的所見所得。主要表示web或winform方式,對使用者的請求接受,以及資料的返回。為client提 用程式的訪問。假設邏輯層相當強大和完好,不管表現層怎樣定義和更改。邏輯層都能完好地提供服務。2.業務邏輯層 bll 針對...
新人如何搭建三層架構
一 三層架構是哪三層 1.介面層 user inte ce layer 主要功能是顯示資料和接受傳輸使用者的資料,提供與人的互動。2.資料訪問層 data access layer 其主要是訪問資料系統中的檔案,比如實現對資料庫或檔案中資料的讀取儲存操作 3.業務邏輯層 business logic...