## **概要**
此規范模型借鑒了DDD領域驅動設計的思想,但它并不是一個標準的DDD四層分層架構,介于貧血與充血模型之間。
|模型類型 |概述|
| --- | --- |
|失血模型|模型僅僅包含數據的定義和getter/setter方法,業務邏輯和應用邏輯都放到服務層中。|
|貧血模型|模型中包含了一些業務邏輯,但不包含依賴持久層的業務邏輯。這部分依賴于持久層的業務邏輯將會放到服務層中。可以看出,貧血模型中的領域對象是不依賴于持久層的。|
|充血模型|充血模型中包含了所有的業務邏輯,包括依賴于持久層的業務邏輯。所以,使用充血模型的領域層是依賴于持久層,簡單表示就是 UI層->服務層->領域層<->持久層。|
|脹血模型|脹血模型就是把和業務邏輯不想關的其他應用邏輯(如授權、事務等)都放到領域模型中。我感覺脹血模型反而是另外一種的失血模型,因為服務層消失了,領域層干了服務層的事,到頭來還是什么都沒變。|
## **特點對比分析**
關于一個模型的相關處理邏輯如下
1.成員的set/get。
2.對數據加工的邏輯,相比于set/get更復雜的邏輯。
3.關于數據的處理。
4.對表示層的響應。
|名稱|成員的set/get|對數據加工的邏輯|對數據的處理的調用|對表示層的響應
| --- | --- | --- | --- | --- |
|失血模型|模型|邏輯層|邏輯層|邏輯層|
|貧血模型|模型|模型|邏輯層|邏輯層|
|充血模型|模型|模型|模型|邏輯層|
|脹血模型|模型|模型|模型|模型|
## **其他**

原文地址:[https://blog.csdn.net/xie__jin__cheng/article/details/97617062]
- 一、概述
- 二、項目建議
- 三、樣例代碼
- 3.1 代碼風格
- 3.2 普通業務處理流程示意圖
- 3.3 事務業務處理流程示意圖
- 四、命名規范
- 五、注釋標準
- 5.1 方法函數
- 5.2 非config文件
- 5.3 修改代碼
- 5.4 數組參數
- 六、MVC建議
- 七、分層描述
- 7.1 控制器 [ Controller ]
- 7.2 驗證器 [ Validate ]
- 7.3 服務層 [ Service ]
- 7.4 模型層 [ Model ]
- 八、輸出標準
- 8.1 控制器 Response
- 8.2 驗證器 Bool
- 8.3 模型 Model | Exception
- 8.4 服務層 Mixed
- 九、其他說明
- 十、模型說明