首先
,學習任何知識都必須從基礎抓起。三層學習也是一樣,首先要了解基本的理論知識。
所謂三層體系結構,是在
客戶端與資料庫之間加入了乙個「中間層」,也叫元件層。這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三颱機器就是三層體系結構,也不僅僅有
b/s應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一台機器上。
三層體系的
應用程式
將業務規則、資料訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與資料庫進行互動,而是通過
通訊與中間層建立連線,再經由中間層與資料庫進行互動。
另外,在學習三層過程中可以看看mvc,將mvc和三層架構比較著理解,可以幫助大家更好的學習三層。
結構圖:
基本的概念:
1、表現層(ui):通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。
2、業務邏輯層(bll):針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。
3、資料訪問層(dal):該層所做事務直接運算元據庫,針對資料的增添、刪除、修改、查詢等。
各層作用:
資料資料訪問層:主要是對原始資料(資料庫或者文字檔案等存放資料的形式)的操作層,而不是指原始資料,也就是說,是對資料的操作,而不是資料庫,具體為業務邏輯層或表示層提供資料服務.
業務邏輯層:主要是針對具體的問題的操作,也可以理解成對資料層的操作,對資料業務邏輯處理,如果說資料層是積木,那邏輯層就是對這些積木的搭建。
表示層:主要表示web方式,也可以表示成winform方式,web方式也可以表現成:aspx,如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。
三層的優缺點:
優點:1、
開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的復用。
缺點:1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加乙個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的**。
3、增加了開發成本。規則:
1.系統各層次及層內部子層次之間都不得跨層呼叫。
2.entityobject 在各個層之間傳遞資料。
3.需要在ui層繫結到列表的資料採用基於關係的dataset傳遞,除此之外,應該使用entityobject傳遞資料。
4.對於每乙個資料庫表(table)都有乙個entityclass與之對應,針對每乙個entity class都會有乙個bem class與之對應。
5.在數量上,bemclass比entity class要多,這是因為有些跨資料庫或跨表的操作(如複雜的聯合查詢)也需要由相應的bem class來提供支援。
6.對於相對簡單的系統,可以考慮將businessclass 子層和business flow 子層合併為乙個。
7.ui層和bl層禁止出現任何sql語句。
錯誤與異常:
異常可以分為系統異常(如網路突然斷開)和業務異常(如使用者的輸入值超出最大範圍),業務異常必須被轉化為業務執行的結果。
1.d層不得向上層隱藏任何異常(該層丟擲的異常幾乎都是系統異常)。
2.要明確區分業務執行的結果和系統異常。比如驗證使用者的合法性,如果對應的使用者id不存在,不應該丟擲異常,而是返回(或通過out引數)乙個表示驗證結果的列舉值,這屬於業務執行的結果。但是,如果在從資料庫中提取使用者資訊時,資料庫連線突然斷開,則應該丟擲系統異常。
3.在有些情況下,b層應根據業務的需要捕獲某些系統異常,並將其轉化為業務執行的結果。比如,某個業務要求試探指定的資料庫是否可連線,這時b就需要將資料庫連線失敗的系統異常轉換為業務執行的結果。
4.ui層除了從呼叫bl層的api獲取的返回值來檢視業務的執行結果外,還需要截獲所有的系統異常,並將其解釋為友好的錯誤資訊呈現給使用者。
難以理解和應用的實體類:
我在學習三層過程中,遇到的最大的困惑就是關於實體類這部分內容的。當時,不知道該怎麼樣去用它,不知道該這樣去設計和協調它。關於實體類的講解,網上也沒找到很好的講解過程。但是,我可以給大家推薦乙個例子(
),只要你仔細去研究這個例子,你就會很快明白,可以很快知道實體類到底該怎麼用以及使用它的好處。這裡給大家乙個建議,一定要仔細找資料去學習三層的有關內容,不要上來就看這個例子。當你理解差不多之後,再去看,再去研究這個例子,那樣才會有效果。
看完這個例子之後,我大概畫了一張圖來理解它:
學習三層有一段時間了,雖然基本上理解了三層。但是,對於三層,還是要進一步深入學習的。它是整個軟體工程的一部分,是需要在實踐中去感悟和理解的。所以,三層的學習是融入在接下來的學習中,做工程的過程中,多思考。這樣才能將它學好,學透徹。
三層架構理解
檢視文章 三層架構 2008 06 12 15 30 三層架構是 資料層,業務層,表示層。資料層從資料庫中取出 10。業務層按照一定的邏輯 這裡我們舉例取溫度的邏輯 翻譯成 10攝氏度。表示層顯現給使用者 哎呀,今天好冷!層就相當於乙個黑盒子,我們不用知道它內部怎麼實現,只需要知道如何去呼叫它就行了...
三層架構初步理解
恢復內容開始 什麼是三層架構 通常意義上的三層架構就是顯示層 ui 業務邏輯層 bll 資料訪問層 dal ui 顯示層,用來採集使用者使用者輸入輸入的資訊和操作,並向使用者展現特定的業務資料,在ui層中常用的技術有windows form form,control asp.net aspx,mas...
三層架構學習(一)
關於機房收費系統的三層架構的圖畫好了,糾結了好一陣子,終於要寫 了,心裡異常興奮。但是一開始我就碰到釘子了,心裡雖然有想法,但是仍然不知道用vb.net如何形容。一開始想著就這樣稀里糊塗的過去算了,看看中間能不能做出來,但是剛剛做了兩個小功能就發現走不下去了,發現死板硬套是行不通的。我仔細琢磨了一下...