天天看點

Domain Driven Design領域驅動設計

大圖:

Domain Driven Design領域驅動設計

1、interface(使用者界面層)

    DTO資料傳輸對象(Data Transfer Object)

        DTO是資料傳輸的載體,内部不應該存在任何業務邏輯,通過DTO把内部的領域對象與外界隔離

    Assembler(裝配)

        實作DTO與領域對象之間的互相轉換,資料交換

    Facade(門面)

        Facade的用意在于為遠端用戶端提供粗粒度的調用接口,他的主要工作就是将一個使用者請求委托給一個或者多個Service進行處理,也就是我們常說的Controller

2、infrastructure(基礎實施層)

    向其他層提供通用的技術能力(比如工具類,第三方庫類支援,常用基本配置,資料通路底層實作)

    為應用層,傳遞消息(比如通知)

為領域層 提供持久化機制(最底層的實作)

為使用者界面層 提供元件配置

3、application(應用層)

    相對于領域層,應用層是很薄的一層,應用層定義了軟體要完成的任務,要盡量簡單

        對外 未展現層提供各種應用功能(service)

對内  調用領域層完成各種業務邏輯任務(task) 這一層也很适合寫一些任務處理,日志監控

4、Domain(領域層)

    實體

        具有唯一辨別的對象  比如:使用者(User)包含使用者id,姓名,年齡,位址

    值對象

        無需唯一辨別的對象  比如:位址對象(包含省份,城市,街道等)

    領域服務

        一些行為無法歸類到實體對象或值對象上,本質是一些操作,而非事物

    聚合、聚合根

        聚合是指一組具有内聚關系的相關對象的集合,每個聚合都有一個root和boundary

    工廠

        建立複雜對象,隐藏建立細節

    倉儲

        提供查找和持久化對象的方法

繼續閱讀