一、概念:
三層架構(3-tier architecture) 通常是指將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。目的是“高內聚,低耦合”的思想。
1、表現層(UI):是展現給用戶的界面。
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
3、數據訪問層(DAL):該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、查找等。
二、原理:
3個層次中,系統主要功能和業務邏輯都在業務邏輯層進行處理。
解析:三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數據庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經由中間層與數據庫進行交互。
三層是指邏輯上的三層,而不是物理上的三層!
解析:所謂三層體系結構,是在客戶端與數據庫之間加入了一個“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上。
三、各層的作用
1、表現層:
位于最外層(最上層),離用戶最近。用于顯示數據和接收用戶輸入的數據,以及數據的返回,為用戶提供一種交互式操作的界面。
2、業務邏輯層(BusinessLogic Layer)
是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理。主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計,也即是說它是與系統所應對的領域(Domain)邏輯有關。很多時候,也將業務邏輯層稱為領域層。
業務邏輯層在體系架構中的位置很關鍵,它處于數據訪問層與表示層中間,起到了數據交換中承上啟下的作用。由于層是一種弱耦合結構,層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設計對于其調用的底層而言沒有任何影響。
3、數據層
數據訪問層:有時候也稱為是持久層,主要功能是對原始數據(數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是數據庫,具體為業務邏輯層或表示層提供數據服務。簡單的說法就是實現對數據表的Select,Insert,Update,Delete的操作。
四、優缺點
1、優點
1) 開發人員可以只關注整個結構中的其中某一層;
2) 可以很容易的用新的實現來替換原有層次的實現;
3) 可以降低層與層之間的依賴;
4) 有利于標準化;
5) 利于各層邏輯的復用。
6) 結構更加的明確
7) 在后期維護的時候,極大地降低了維護成本和維護時間。
2、缺點
1) 降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
2) 有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
3) 增加了開發成本。
原文轉自:http://blog.csdn.net/lantingxv_jing/article/details/8946983