这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?】
大家好,我是IT修真院深圳分院第十三期学员王东东,一枚正直纯洁善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务一,扩展思考中的知识点——什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?。
一、背景介绍
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。分为四类:失血模型,贫血模型,充血模型,胀血模型。
二、知识剖析
1.什么是贫血模型?
贫血模型是指使用的领域对象中只有setter和getter方法(POJO),所有的业务逻辑都不包含在领域对象中而是放在业务逻辑层。
2.什么是充血模型?
充血模型将大多数业务逻辑和持久化放在领域对象中,业务逻辑只是完成对业务逻辑的封装、事务和权限等的处理。比较符合面向对象。
三、常见问题
为什么要强制使用贫血模型?
四、解决方案
系统的层次结构清楚,各层之间单向依赖。
耦合度低,方便后期的更新与维护。
设计简单,底层模型稳定。
五、编码实战
六、扩展思考
贫血模型与充血模型的对比:
他们最大的不同就是如何划分业务逻辑。
贫血模型实体类只有SET GET方法,逻辑基本在服务层实现,代码集中在Service层。耦合性很小,方便团队合作。
充血模型的实体类里不但有状态,还有行为,即属性和方法都有。它的Service层很薄,业务逻辑只是完成对业务逻辑的封装、事务和权限等的处理。对个人技术水平要求较高。
注:本人初学java者,如有不对敬请指出,谢谢!
七、参考文献
百度百科、博客园、CSDN
八.更多讨论
1.贫血模型里没有实现方法,那它的增删改查是在哪实现的?
贫血模型需要玻璃处DB层专门用于数据库操作。
2.贫血模型有什么缺点?
逻辑集中在Service层,导致Service太过厚重。
3.典型的WEB应用中使用贫血模型,还是充血模型?为什么?
使用贫血模型
典型的web应用中,简单的CRUD操作占据了业务逻辑的绝大多数比例,可以避免了业务逻辑不得不大量封装DAO接口的问题,简化了软件架构设计,节省了大量的业务层代码量。
(1)它是基于组件技术的。全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件.并且和Spring提供的其他基础结构紧密集成.
(2)
不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)
(3)可以任意使用各种视图技术,而不仅仅局限于JSP
(4) 支持各种请求资源的映射策略
(5)它应是易于扩展的
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。