业务对象是指那些从实际业务场景中抽象出来的对象,这些对象在代码中对应的就是一些业务对象类。
在常见的SSH框架的开发中,一般的做法是将每一个业务对象对应一个POLO,当然这是为了方便使用ORM框架。当我们把业务对象实现为POJO的时候,我们实际上是在使用业务对象贫血模式。下面是
业务对象贫血模型图:(业务对象类既领域层的model)
在贫血模型中,业务对象仅仅包含数据而不包含行为,他的作用只是数据的载体或者说是数据的传递介质。系统的业务逻辑全部放到业务逻辑层,会导致业务逻辑层比较庞大。
为了避免出现贫血模型中业务逻辑层较庞大的缺点,考虑将一些恰当的业务逻辑放到业务对象类中,即贫血模型的POJO类中。下面是
业务对象充血模型图:(业务对象类既领域层的model)
在充血模型中,业务对象既包含数据又包含行为,他的作用不再只是数据的载体而是一个真正有行为的对象。此时,领域层作为软件体系的一个层次出现而非贫血模式中的辅助的角色。
贫血模型和充血模型,两个各有优势:
贫血模型的系统层次清楚,但是不够面向对象。在业务逻辑层处理所有的业务逻辑,太过沉重。
充血模型足够面向对象,业务逻辑层符合单一职责原则,不像在贫血模型里面那样太过沉重。但是如何将业务逻辑划分到业务层和领域层比较含糊。
- 大小: 61.5 KB
- 大小: 67.5 KB
分享到:
相关推荐
失血模型简单来说,就是domain object只有属性的getter/setter方法的纯数据类,所有的业务逻辑完全由business object来完成(又称TransactionScript),这种模型下的domain object被Martin Fowler称之为“贫血的domain...
本文解释了当今比较新的设计模式中的贫血和充血模式。对加深理解二模型很有帮助!
第一点原因是,大部分情况下,我们开发的系统业务可能都比较简单,简单到就是基于 第二点原因是,充血模型的设计要比贫血模型更加有难度 第三点原因是,思维已固化,转型
(1)每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表 (2)领域对象同事封装了业务逻辑 (3)领域对象同时负责数据持久化,在其中封装对数据库的
NULL 博文链接:https://melin.iteye.com/blog/716507
贫血模型or领域模型的举例对比,让你初步了解贫血模型与领域模型的区别和概念。附加一个自己创建的代码范例
基于GO的六边形架构框架,可支撑充血的领域模型范式代码实现
领域模型的职责是实现业务逻辑,如果领域模型只是用来处理简单的逻辑(比如贫血模型),那么领域模型的作用微乎其微,甚至可以忽略,数据转换的成本比领域模型带来的好处还多,这种情况其实就是在原有的分层架构中...
欢迎大家发表自己的看法,希望朋友知无不言,言无不尽.
贫血模型的优缺点? DDD提倡的充血模型是什么? 体会下充血模型开发微信钱包系统 聚合和聚合根是什么? 领域事件是什么? 看看领域事件的本质(解耦,异步,削峰) 工厂和资源库的作用? 领域服务是什么? 通过用例...
背景:充血性心力衰竭的危险因素之一仍在研究中,是高尿酸血症。 它是独立的危险因素还是仅仅是与心血管疾病有关的其他疾病(如高血压,糖尿病和血脂异常)的... 血清尿酸水平与充血性心力衰竭的严重程度之间存在显着相
火龙果软件工程技术中心 对于领域模型这个概念,...尤其是O'RMapping技术成熟并且逐渐成为主流以后,这种模型化的设计方法在项目应用中体现得非常之多....,并分析了它们的优缺点.1、失血模型2、贫血模型Service(业务逻辑...
微服务架构首先要关注的不是RPC/ServiceDiscovery/Circuit Breaker这些概念,也不是Eureka/Docker/SpringCloud/Zipkin这些技术框架,而是服务的边界、职责划分,划分错误就会陷入大量的服务...• 充血模型 • 事件驱动
但有一些业务逻辑在设计的时候涉及到了多个业务领域对象 ,我们很难决定放在哪个具体的业务对象里,所以我们有一个Service层来放这种业务逻辑。 外观层(设计模式之外观模式)Facade:把数据访问接口,业务领域对象的...
慢性充血性心力衰竭抑郁焦虑的识别与治疗陈炜学习教案.pptx
1. 充值 2. 支付 3. 提现 4. 查询余额 5. 查询交易流水
充血性心力衰竭急诊治疗.ppt
自由DDD框架自由是一个基于六边形架构的框架,可以支撑充血的领域模型范式。总览集成虹膜HTTP / H2C服务器和客户端集成普罗米修斯AOP工作者和无侵入上下文可扩展组件依赖注入&依赖倒置&开闭原则DDD和六边形架构...
充血性心力衰竭的急诊治疗.pptx