分層架構
大多為以下四層:
- Presentation Layer 表現層: 該層關注的是用戶看到或可以互動的任何內容,包含UI、圖形、表單、影像
- Business Layer 業務層: 軟體本身特定的業務邏輯,blog網站會有發布文章、留言功能
- Persistence Layer 持久層: 資料存取
- Database Layer 資料層: 資料來源 ex:本地DB,雲端DB
層與層之前的關係
Presentation Layer⇆Business Layer⇆Persistence Layer⇆Database Layer
為何不能直接從表現層訪問資料存取層?
分層目的為了降低程式之間的依賴性,這架構提出一個層與層之間隔離的概念,如果允許表現層直接訪問持久層,那在持久層的改動會同時影響表現層與業務層。
層與層之間使用interface定義接口,當需要重構某一層時也可以不用改動其他層。
雖然隔離層之間的訪問可以降低耦合性,但在某些常用功能(log紀錄,數學運算..)下可以新增一個共用層並調整層的封閉性。
軟體分層設計優缺點
優點
- 框架簡單好學,跟MVC的概念雷同
- 減少了依賴性
- 好測試
缺點
- 可擴展性低
- 層越多trace code越麻煩