当前位置: 首页 > news >正文

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

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

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

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

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

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

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

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

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

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


http://www.mrgr.cn/news/47180.html

相关文章:

  • 深入Android架构(从线程到AIDL)_22 IPC的Proxy-Stub设计模式04
  • springboot 加载本地jar到maven
  • 为什么Transformer使用LayerNorm而不是BatchNorm?
  • Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图
  • Vue 3前端与Python(Django)后端接口简单示例
  • docker的数据卷和自定义镜像
  • 微信服务号灰度测试折叠,看谁该慌了?
  • Facebook直播分析与问题解决策略
  • 【网络】详解TCP协议中的可靠传输
  • 中科星图GVE(案例)——AI提取指定采样区域的建筑物范围
  • Android WebView 与 H5 交互的一些总结
  • @RequestMapping指定请求方式的用法
  • 【优选算法】(第三十二篇)
  • 请用python写一个小程序,把浏览器中打开的页面设置为深色模式
  • Solr简介
  • 如何高效部署SD-WAN及是否需要路由器?
  • windows 11 PE 制作及应用
  • 不同操作系统间conda环境迁移出现ResolvePackageNotFound错误
  • JavaScript 运算符全知道
  • 程序设计基础I-实验7 函数(函数题)
  • 当页面产生滚动,位置超过侧边栏的顶部阈值后,侧边栏变为固定定位
  • 适合高新技术企业的内外网文件交换系统
  • 算法题解:找不到百草枯
  • 【Linux】su 命令的运行原理以及su切换用户默认继承环境配置
  • 【测试】——测试管理工具禅道 介绍与使用
  • C# 两个进程/exe通讯方式 两个应用程序通讯方式