COLA 架構規范定義


基礎架構圖

  • Adapter 適配層:對前端展示的路由和適配。
    VO:返回給前端的對象
    assembler:將 responseDTO 轉換為 VO
    web:處理頁面請求的 Controller
    wap:處理手機端請求的 Controller
  • Application 應用層:負責獲取輸入,組裝上下文,調用領域層做業務流程編排,如果需要的話,發送消息通知等。若只是簡單操作,應用層還可直接繞過領域層,訪問基礎層。避免在 Application 層做入參校驗,可以通過 JSR303/380 和 Spring Validation 來前置校驗。如何判斷是否屬於業務流程:不要有 if/else 分支邏輯,除非是 if 條件對象判空返回或者拋異常終止。
    DTO:數據轉換對象,只是為了和外部交互,所以本身不包含任何邏輯,屬於貧血對象,包括 req 請求 DTO 和 res 響應 DTO
    converter:實現 dto 與 model 之間轉換或 dto 與 po 之間轉換
    consumer:處理外部消息通知,比如 MQ 消息
    executor:處理 request,包括 command 和 query 兩種(一般可用 CmdExe 表示)
    scheduler:處理定時任務
    rpc:實現 Client 中供外部調用的 Facade 接口,FacadeImpl
  • Client:封裝 sdk 供外部調用
    api:供外部調用的 Facade 接口
    DTO:供外部使用的接口對應的 DTO
    enums:枚舉類
  • Domain 領域層:封裝核心業務邏輯,並通過領域服務(Domain Service)和領域對象(Domain Entity)向 App 層提供業務邏輯計算和業務實體。領域是應用的核心,不依賴其他任何層次。
    model:領域模型,包含數據和行為
    gateway:領域網關,與外部解耦利器
    ability:領域能力,包括 DomainService,當某個行為影響到多個 Entity 時,屬於跨實體的業務邏輯,在這種情況下就需要 DomainService 來完成,即業務需要涉及到多個 gateway
  • Infrastructure 基礎實施層:處理技術細節,比如數據庫 CRUD、搜索引擎、文件系統等,領域防腐的重任也落在這層,通過調用外部接口獲取到的外部對象轉換為實際 Domain 層所定義的對象模型,從而不直接使用外部對象。
    PO:與數據庫表一一映射關系,每個字段對應數據庫表的一個 column,PO 只有數據,沒有行為
    factory:model 與 po 之間轉換
    mapper:數據庫映射,持久化操作
    common:工具包
    gatewayImpl:網關實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM