DDD-四种业务模型

1.失血模型

数据对象中只有只有属性和set和get方法,业务逻辑层里包含了几乎所有的逻辑,不重要几乎不用

 特点:对象中只包含get set方法

优点:领域对象结构简单

缺点:1.肿胀的业务逻辑代码,难以维护

2.无法应对频繁更改的需求

2.贫血模型

数据对象在失血模型中的数据对象的基础上添加固有行为

固有行为:可以理解为本能行为,如睡觉吃饭走路等,正常人都拥有这种行为。

非固有行为:如打游戏、识别文字,都是一些后天的行为,部分人才有

优点:层次结构清晰,各层级单向依赖

对只有少量业务逻辑的应用来说,使用起来非常自然

缺点:无法良好的应对非常复杂的逻辑和场景

这种模型是Spring一致引领的方向,所以非常的流行用途极广

3.充血模型

更加符合面相对象的设计

其实它是没有单独持久层的,持久化的逻辑放在领域对象当中

所以上面的图我们也可以改为:

 

数据对象和业务逻辑是平行逻辑 

 优点:1.更加符合面相对象的原则

2.业务逻辑层很薄,薄到几乎完全符合单一职责原则

 缺点:1.职责不好划分(无专门的持久层),要求开发者水平要很高

2.模型中包含了大量的操作,实例化的时候增加很多不必要的消耗,会实例化很多的关联对象

4.胀血模型

 

优点:1.简化了分层架构

2.也算是符合面向对象的设计原则

缺点:1.取消了业务逻辑层,直接在domain Object(领域对象)上封装事务以及授权,授权很多原本不属于这个领域对象的逻辑,模型不稳定,代码缺乏可维护的稳定性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值