三層架構與 Embedded Framework 分層的切入點


三層架構 (3-tier architecture) 是軟體工程中裡面很常見的分層方式,或者也可以說是最基本的架構方式之一。

在想要透過 Embedded Framework 來分割程式碼時,
由於常見的 Clean Architecture, Redux 等架構的層次和元素非常多、非常難著手,
因此三層架構的概念或許是還滿好的切入點。

碰到的問題

碰到以下這一類的問題,就需要透過調整架構改善程式碼的品質

  • 不容易分開各個部分的邏輯,商用邏輯會混雜在各個 view 或是 view controller 裡
  • 當專案規模需要擴張時,會因為不洽當的相依而導致分層或模組化的成本非常高
  • 新增功能或是移除功能時消耗的成本高
  • 因為有不當的相依而無法寫出合理的測試

三層架構是什麼

如其名,主要分三大部分:

說明
Presentation Tier
表現層
提供使用者操作介面,用來顯示資料,以及接收使用者的互動或是輸入的資料,進而將這些資訊傳到商業邏輯層
Business Logic Tier
商業邏輯層
處理由表現層傳來的資料或是事件,以及從資料存取層獲取的資料。也可以說是表現層和資料存取層的中介層
Data Tier
資料存取層
根據商業邏輯層的需求,存取資料庫,或是外部資料

對應到 iOS 的專案

對應
Presentation Tier
表現層
View , view controller 的部分職責
Business Logic Tier
商業邏輯層
View controller 的部分職責, 和一些 formatter、validator 等等
Data Tier
資料存取層
介接本地資料庫 Core Data, Realm 和介接 API 的部分

架構的概念

畫成架構圖,概念上就如下圖

範例程式碼

有空的話,再以另外的文章配上程式碼說明

以上, Happy coding!!