领域驱动设计DDD的工作机制

云的事情不好说 2024-05-29 03:24:57

DDD 提出了一套定义好的结构,可以用来构建模型。拥有这些预定义的元素使得开发人员和领域专家更容易理解模型。

1. 实体(Entities):是具有连续性线索的对象。它有一个唯一标识符,但不是由其属性定义的。对象是可变的,属性可以改变,但身份保持不变。例如,想象在餐厅中下的一个订单。订单有一个与之关联的唯一订单号,但是订单的属性从下单、烹饪到上菜都在变化。

2. 值对象(Value Object):是定义特征的对象。它是不可变的,不能更改。这些是可以被多个实体共享的实体属性。更改这个属性的唯一方法是创建一个新实例并替换旧的。

3. 领域事件(Domain Event):是用来定义事件的对象。领域事件是那些对领域专家有重大影响的事件,因此,并非所有技术事件都是领域事件。

4. 服务(Services):是任何无状态的操作,它不影响或与实体或值对象无关。

5. 聚合(Aggregate):是在一个边界内定义的实体和值对象的组合。聚合中的实体和值对象不能被外部对象访问,除了一个被称为聚合根的实体。

6. 聚合根(Aggregate Root):聚合根是唯一一个可以与其他对象交互并向整个聚合发送指令的实体。

7. 仓库(Repositories):是一个接口,可以访问实体、值对象和聚合。可以定义不同的方法来创建、删除和修改这些对象。仓库使用户能够在不了解它们存储在哪里以及如何存储的复杂性的情况下,更容易地访问这些对象。

8. 工厂(Factories):是用来制造复杂对象(如聚合)的另一种抽象。这将使用户能够通过一个原子函数创建这些对象,而不必担心系统的底层工作原理。



0 阅读:0

云的事情不好说

简介:感谢大家的关注