架構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爲控制,也就是事件,用於流程的控制

設計原則:

業務層接口的設計原則:一個實體類一個接口,一次提交一個業務方法。業務方法的參數來自表現層。

持久層接口的設計原則:一個實體類一個接口,一次數據庫操作一個持久方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章