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