天天看點

架構1.分層架構,什麼是分層架構

​​分層架構​​模式裡的元件被分成幾個平行的層次,每一層都代表了應用的一個功能(展示邏輯或者業務邏輯)。盡管​​分層架構​​沒有規定自身要分成幾層幾種,大多數的結構都分成四個層次:展示層,業務層,持久層,和資料庫層。

常見的圖如下    

​​

架構1.分層架構,什麼是分層架構
複雜一點的​​分層架構​​圖如下
架構1.分層架構,什麼是分層架構

分層​​架構​​的特點:

1. 分層​​架構​​中的每一層都着特定的角色和職能。

比如說展示層并不需要關心怎樣得到使用者資料,它隻需在螢幕上以特定的格式展示資訊。業務層并不關心要展示在螢幕上的使用者資料格式,也不關心這些使用者資料從哪裡來。它隻需要從持久層得到資料,執行與資料有關的相應業務邏輯,然後把這些資訊傳遞給展示層。

2. 分層架構的一個突出特性是元件間關注點分離 (separation of concerns)。

一個層中的元件隻會處理本層的邏輯。比如說,展示層的元件隻會處理展示邏輯,業務層中的元件隻會去處理業務邏輯。

這樣的好處就是開發,測試,管理,維護都清楚多了 比如開發的時候就可以這樣 張三和李四負責展示層,王五,馬六負責邏輯層。

3. 每一層都是封閉的。

舉個例子,從展示層傳遞來的請求首先會傳遞到業務層,然後傳遞到持久層,最後才傳遞到資料層。資料不能直接從展示層傳遞到資料庫層,如果把寫入資料庫的操作也在展示層代碼裡寫,就越寫越亂了。

分層架構的優點,缺點和難點

作用:分解複雜的軟體系統

優點:1、降低複雜度,上層不需要關注下層細節。

2、提高靈活性,可以靈活替換某層的實作。

3、減小耦合度,将層次間的依賴減到最低。

4、有利于重用,同一層次可以有多種用途。

5、有利于标準化。

缺點:1、不能封裝所有工作,可能會帶來及聯修改。

2、過多層次影響性能。

難點:1、如何劃分層次。

2、定義層次職責。

難點也是架構師的作用所在,有效的劃分層次和定義職責後,團隊的開發就會更加順暢。

分層架構的演變曆史

分層演化過程:

單層架構–>兩層架構–>三層架構–>N層架構

單層架構:早期批處理系統

兩層架構:C/S 客戶/伺服器模式

特點:沒有複雜的領域邏輯

優點:有非常好的工具支援,VB、Delphi、PowerBuilder

缺點:代碼備援,難于維護。

模式:1、領域邏輯寫在用戶端

2、領域邏輯寫在資料庫(存儲過程)

面向對象技術、WEB興起、Java出現共同推進了三層架構。

Layer與Tier的差別:

1、Tier強調實體上的分離,Two Tier System。

2、Layer強調邏輯上的分層。

三層架構:表現層-領域層-資料源層(持久層)

1、表現層:提供服務,顯示資訊。

2、領域層:系統核心邏輯。

3、資料源層:與資料庫、消息系統以及其他軟體包通信

關于面向對象的三層架構了解:

面向對象——三層架構(表現層、業務層、持久層)

三層架構:即表現層、業務層、持久層。

① 持久層:采用DAO模式,建立實體類和資料庫表映射(ORM映射)。也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層

的目的就是,完成對象資料和關系資料的轉換。

② 業務層:采用事務腳本模式。将一個業務中所有的操作封裝成一個方法,同時保證方法中所有的資料庫更新操作,即保證同時成

功或同時失敗。避免部分成功部分失敗引起的資料混亂操作。

③ 表現層:采用MVC模式。

M稱為模型,也就是實體類。用于資料的封裝和資料的傳輸。

V為視圖,也就是GUI元件,用于資料的展示。

C為控制,也就是事件,用于流程的控制