DDD基础知识1

DDD-基础知识 领域模型:失血、贫血、充血 失血模型:基于数据库的领域设计方式其实就是典型的失血模型; 一般开发的时候,都是根据数据库和表一一对应的设计。

在上述标中,如果存在同时修改两个 表,那么一般会使用manager去控制。

贫血:人在查询地址的时候,在上述失血模式中,肯定会去调研addressDao.find(),在贫血中就不会了,贫血中在一个类Person中给另外一个类Address赋值。

充血:在上述贫血模式中,一个类操作了数据库,这样很不好。充血模式中使用了依赖注入。

一 实体 什么是实体:有业务生命周期,使用标识进行跟踪。

比如人是一个实体,人从出生到死亡,都在不断的变化中,人有自己的生命周期。但是每个人都是不一样的,每个人都是唯一的,这个唯一可以用身份证号码去区分,每个人的身份证号都是不一样的。 实体:1 应该有生命周期 2 具有唯一的标识

2 值对象 1.不可变的 2.将不同的相关属性组合成了一个概念整体 3.当度量和描述改变时,可以用另外一个值对象予以替换 4.可以和其他值对象进行相等性比较 5.不会对协作对象造成副作用

值对象是不可变的,比如人有家,家的地址A是不会变化的。 当然有人说搬家了怎么办呢,搬家了就换一个地址B,但是他以前的家A还是在原来的A这个地址。

img-blog.youkuaiyun.com/20181024171…

比较流行使用ORM持久化机制,使用ORM将每个类映射到一张数据库表, 再将每个属性映射到数据库表中的列会增加程序的复杂性

3 聚合 聚合是领域对象的显式分组,旨在支持领域模型的行为和不变性,同时充当一致性和事务性边界。

基于业务用例而非现实生活建立必要的关联 减少不必要的关联 将双向的关联转换为单向关联

聚合不仅仅是简单的对象组合,其主要的目的是用来封装业务和保证聚合内领域对象的数据一致性 比如:订单支付这个操作,设计到多个领域到事务性,一个是订单领域状态修改为已经支付,在库存领域,库存数量减少

转载于:https://juejin.im/post/5bd040356fb9a05d31555044

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值