其實分層架構不一定是分成三層,是否再切更多層要視團隊而定。
以我自己的開發經驗來說,開發上主要會分成這三層:
- Presentation Layer
- Service Layer
- Data Acces Layer
展示層 (Presentation Layer)
最接近使用者的一層,在接收使用者的請求後,會請服務層做處理,再將得到的結果展示給使用者。
服務層 (Service Layer)
因為是處理商業邏輯的一層,所以又稱為商業邏輯層。 會請資料存取層處理資料,再把得到的結果交給展示層。
資料存取層 (Data Acces Layer)
資料存取層的物件 (Data Access Object,簡稱 Dao) 是 Service 層用於取得資料的窗口,通常包含與資料庫連線、對資料來源操作 CRUD、OR-Mapping 等內部細節實作,並將取得的資料以 Domain Object 的形式提供給 Service 層調用。 而因為會把資料存至資料庫或檔案,進行長期保存,資料存取層又稱為持久層 (Persistence Layer)。
各層傳遞的資料物件:
-
Domain Object 是用於表示 DB Table 內單筆資料的資料物件
-
DTO (Data Transfer Object) 是服務層和展示層之間溝通用的資料物件。
|
|
通常一個 DTO 會對應至少一個 Domain Object,並在服務層操作 Domain Object 和 DTO 物件的資料交換。
文章作者: Michael
上次更新: 2023-12-01
授權條款: 保留所有權利