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
    工廠
        創建複雜對象,隱藏創建細節
    倉儲
        提供查找和持久化對象的方法
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章