三層架構搭建

2021-06-06 13:37:05 字數 1612 閱讀 8043

所謂的三層架構:

控制層邏輯層

資料層當然會有乙個模型層

那麼就是四層

若是所有的訪問資料庫都用儲存過程

那麼就不需要模型層

三層就是為了**維護和可擴充套件性好一些

做 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...