业务对象的贫血模型与充血模型
对象 模型 业务
2023-09-14 09:02:31 时间
业务对象是指那些从实际业务场景中抽象出来的对象,这些对象在代码中对应的就是一些业务对象类。
在常见的SSH框架的开发中,一般的做法是将每一个业务对象对应一个POLO,当然这是为了方便使用ORM框架。当我们把业务对象实现为POJO的时候,我们实际上是在使用业务对象贫血模式。下面是业务对象贫血模型图:(业务对象类既领域层的model)
在贫血模型中,业务对象仅仅包含数据而不包含行为,他的作用只是数据的载体或者说是数据的传递介质。系统的业务逻辑全部放到业务逻辑层,会导致业务逻辑层比较庞大。
为了避免出现贫血模型中业务逻辑层较庞大的缺点,考虑将一些恰当的业务逻辑放到业务对象类中,即贫血模型的POJO类中。下面是业务对象充血模型图:(业务对象类既领域层的model)
在充血模型中,业务对象既包含数据又包含行为,他的作用不再只是数据的载体而是一个真正有行为的对象。此时,领域层作为软件体系的一个层次出现而非贫血模式中的辅助的角色。
贫血模型和充血模型,两个各有优势:
贫血模型的系统层次清楚,但是不够面向对象。在业务逻辑层处理所有的业务逻辑,太过沉重。
充血模型足够面向对象,业务逻辑层符合单一职责原则,不像在贫血模型里面那样太过沉重。但是如何将业务逻辑划分到业务层和领域层比较含糊。
相关文章
- 【愚公系列】2022年08月 Go教学课程 030-对象继承
- js中map遍历数组对象_js遍历数组
- 对象的内存布局解析
- JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】
- net/sf/json/jsonobject_js获取json对象的值
- Meta AI 的研究人员创建了用于对象识别的“OMNI3D”数据集和可以推广到看不见的图像的“Cube R-CNN”模型
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
- 【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 正常方法调用 | 方法委托实现 | 代码示例 )
- Oracle数据库对象的使用详解
- [android] 采用layoutInflater打气筒创建一个view对象详解手机开发
- Oracle数据库中的六种重要对象(oracle六种对象)
- PHP5.0对象模型深度探索之绑定
- PHP5.0对象模型探索之抽象方法和抽象类
- ASP编程入门进阶(八):内置对象Session
- js使用对象直接量创建对象的代码
- PHP5.0对象模型深度探索之属性和方法
- 浅谈javascript对象模型和function对象
- JavaScript学习笔记之JS事件对象
- C++多重继承和虚拟继承对象模型、效率分析