首頁  >  文章  >  Java  >  java三層架構和DDD分層架構是什麼

java三層架構和DDD分層架構是什麼

PHPz
PHPz轉載
2023-05-15 10:25:052999瀏覽

三層架構

傳統的三層架構主要分為業務介面層、業務邏輯層、資料存取層

java三層架構和DDD分層架構是什麼

  • 業務介面層:主要是API的定義,包括資源路徑定義、請求封包接受、回應封包回傳、請求編碼等定義的內容;

  • 業務邏輯層:主要做業務邏輯處理,這一層包括資料映射DTO轉VO,業務核心邏輯編寫,組合不同資料倉庫,做業務邏輯;

  • 資料存取層:主要做資料存儲,包括資料映射VO轉PO,資料介面的定義,映射XML的編寫。

DDD分層架構

DDD分層架構也可以叫四層架構,主要由使用者介面層、應用層、領域層、基礎層;

java三層架構和DDD分層架構是什麼

  • 使用者介面層:負責向使用者顯示資訊和解釋使用者指令,例如使用者、程式、自動化腳本、批次腳本等;

  • 應用程式層:主要用於協調多個聚合的服務和領域物件完成服務編排和組合,可以調本地也可以調遠端的服務、包含權限驗證、交易控制、防重冪等,不要把核心的業務邏輯放到這裡;

  • 領域層:實作核心邏輯,包括聚合根、實體、值物件、領域服務,包括業務擴充點、校驗規則、組合聚合服務等相關功能;

  • 基礎層:提供通用的技術和基礎服務,包括一些第三方工具類別、快取、資料庫、檔案等,採用依賴倒置的設計,於其他層解耦。

演變

三層架構向DDD架構演變,主要發生在邏輯層和資料庫存取層

java三層架構和DDD分層架構是什麼

  • 新增DTO,給前端資料可用性更高,更靈活;

  • #三層架構的業務邏輯層改為應用層和領域層,使得業務邏輯不混亂,應用快速回應前端的變化;

  • 基礎層和資料存取層的設計變化,透過依賴倒置實現基礎設定對基礎資源的解耦,應對主流技術的變化。

專案結構

java三層架構和DDD分層架構是什麼

使用者介面層

  • Assembler:DTO與實體對象相互轉換與資料交換,與DTO同時出現;

  • Dto:資料傳輸載體,DTO可以將領域物件與外界隔離;

  • Facade:粗接口粒度定義,將請求給多個應用服務處理;

應用層

  • event: 主要存放事件相關程式碼,包括兩個子目錄publish和subscribe,放發布訂閱相關程式碼,這裡可以領不同領域服務訂閱也可以是微服務之間的訂閱;

  • service:應用程式服務,主要對外部的服務進行封裝、編排與封裝,提供粗粒度的服務,也是一段獨立的業務邏輯

領域層

  • ##Aggregate:聚合軟體包的根目錄,根據聚合的名稱命名,裡面可以定義實體、聚合根、實體、值物件以及領域服務,可以獨立拆分成微服務;

  • Entity :存放聚合根、實體、值物件、工廠模式相關程式碼,統一實體的相關邏輯,都放在該類別中,採用充血模式;

  • Event:存放事件實體以及事件活動相關的邏輯代碼;

  • Service:領域服務,根據不同的實體組合的業務邏輯;

  • Repository:存放聚合查詢和持久化領域物件的程式碼;

基礎層

  • #Config:主要存放配置相關程式碼,例如springboot自動配置內和整合第三方元件的配置;

  • Util:主要存放平台、開發框架、訊息、資料庫、快取、檔案、匯流排、網關、第三方類別庫、通用演算法等基礎程式碼,你可以為不同的資源類別建立不同的子目錄;

範例程式碼

java三層架構和DDD分層架構是什麼#

以上是java三層架構和DDD分層架構是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除