领域模型
1 失血型
domain中的object 是纯粹的数据对象字段,也就是我们平常代码中的写法
个人理解是,所有的数据对象,模型,都可以认为是领域模型
可以按照模块划分,比如dubbo中,user模块,product模块。。。
可以按照层级划分,比如core-model 中的domain
失血型的领域模型是最常用的领域模型
2 贫血型
在贫血型的领域模型中,domain object中,不在是单纯的数据对象字段和get/set方法了,在这里面出现了业务逻辑,但是这些业务逻辑划分是有讲究的,
即,哪些业务是可以放在domain object中,哪些是不能放在domain object中
采用的原则是 case by case
可重用度高的,和domain object状态密切关联的放在domain object中
可重用度低的,和domain object状态没有密切关联的放在xxxmanager中。
domain object
manager ---server----dao
3 充血型
只做了解 充血模型和贫血模型差不多,即认为,绝大多业务逻辑都应该被放在domain object里面(包括持久化逻辑),而Service层应该是很薄的一层(像facade一样,仅仅是调用),仅仅封装事务和少量逻辑,不和DAO层打交道。
domain object
manager ---server(很薄的一层,仅仅用来做调用)----dao
4 胀血型
只做了解 domain object
manager ------dao 直接取消service
参考:https://blog.csdn.net/jianping_shen/article/details/1591913