贫血模型和充血模型

Posted konami

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贫血模型和充血模型相关的知识,希望对你有一定的参考价值。

贫血模型:领域对象里只有get和set方法,或者包含少量的CRUD方法,而不包含有业务逻辑的处理,把"行为"和"状态"分离到不同的对象里,只有状态的对象被称为"贫血对象"(VO),而只有"行为"的对象一般被用作服务对象,就像spring的server一样,都是无状态对象,本身并不存储数据,只处理逻辑。
充血模型:业务逻辑和持久化都放在对象中,Business Logic(业务逻辑层)只负责简单封装部分业务逻辑以及控制事务、权限等。
例:
要设计一个操作用户的功能,
贫血模型:
需要User+UserService,
添加新用户userService.save(User user)。
充血模型:
user.save()
贫血模式中,行为和状态是分开的,需要Business Logic层操作User,而充血模型下操作都由对象本身来完成。
 
 



以上是关于贫血模型和充血模型的主要内容,如果未能解决你的问题,请参考以下文章

贫血模型和充血模型

贫血模型跟充血模型-摘录

领域模型贫血模型充血模型概念总结

领域驱动设计系列贫血模型和充血模型

DDD领域模型贫血模型充血模型概念总结

DDD领域模型贫血模型充血模型概念总结