## **概要**
此规范模型借鉴了DDD领域驱动设计的思想,但它并不是一个标准的DDD四层分层架构,介于贫血与充血模型之间。
|模型类型 |概述|
| --- | --- |
|失血模型|模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。|
|贫血模型|模型中包含了一些业务逻辑,但不包含依赖持久层的业务逻辑。这部分依赖于持久层的业务逻辑将会放到服务层中。可以看出,贫血模型中的领域对象是不依赖于持久层的。|
|充血模型|充血模型中包含了所有的业务逻辑,包括依赖于持久层的业务逻辑。所以,使用充血模型的领域层是依赖于持久层,简单表示就是 UI层->服务层->领域层<->持久层。|
|胀血模型|胀血模型就是把和业务逻辑不想关的其他应用逻辑(如授权、事务等)都放到领域模型中。我感觉胀血模型反而是另外一种的失血模型,因为服务层消失了,领域层干了服务层的事,到头来还是什么都没变。|
## **特点对比分析**
关于一个模型的相关处理逻辑如下
1.成员的set/get。
2.对数据加工的逻辑,相比于set/get更复杂的逻辑。
3.关于数据的处理。
4.对表示层的响应。
|名称|成员的set/get|对数据加工的逻辑|对数据的处理的调用|对表示层的响应
| --- | --- | --- | --- | --- |
|失血模型|模型|逻辑层|逻辑层|逻辑层|
|贫血模型|模型|模型|逻辑层|逻辑层|
|充血模型|模型|模型|模型|逻辑层|
|胀血模型|模型|模型|模型|模型|
## **其他**
![](https://img.kancloud.cn/c8/66/c866efcadb1507f5f9e200b6f5403d76_701x373.png)
原文地址:[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
- 九、其他说明
- 十、模型说明