什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?】 大家好,我是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)它应是易于扩展的 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ PPT链接?视频链接 更多内容,可以加入IT交流群565734203与大家一起讨论交流 这里是技能树·IT修真院:,初学者转行到互联网的聚集地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |