首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为在一个上下文中而不是在另一个上下文中的聚合根的实体编写命令?

在这个问答内容中,我们需要解决的问题是如何为在一个上下文中而不是在另一个上下文中的聚合根的实体编写命令。这里涉及到领域驱动设计(Domain-Driven Design,DDD)中的聚合根(Aggregate Root)概念。聚合根是一种设计模式,用于在领域模型中表示实体的根,并确保实体之间的一致性。

为了在一个上下文中而不是在另一个上下文中的聚合根的实体编写命令,我们可以遵循以下步骤:

  1. 确定实体的边界:在编写命令之前,我们需要确定实体的边界。这意味着我们需要确定哪些实体属于同一个聚合,以及哪些实体应该在聚合根之外。
  2. 使用聚合根:聚改变量名称,聚合根是一个实体,它负责维护聚合的一致性。在编写命令时,我们需要确保所有的操作都通过聚合根进行,以确保聚合的一致性。
  3. 使用领域事件:在编写命令时,我们可以使用领域事件来通知其他上下文。领域事件是一种在领域模型中表示域内发生的事件的方法。通过使用领域事件,我们可以在不同的上下文之间传递信息,而不会影响聚合的一致性。
  4. 使用领域服务:在编写命令时,我们可能需要使用领域服务来实现一些复杂的业务逻辑。领域服务是一种在领域模型中表示业务逻辑的方法。通过使用领域服务,我们可以将业务逻辑与实体和聚合根分离,从而使代码更易于维护和扩展。
  5. 使用仓库:在编写命令时,我们需要使用仓库来存储和检索实体。仓库是一种在领域模型中表示数据存储和检索的方法。通过使用仓库,我们可以将数据存储和检索与实体和聚合根分离,从而使代码更易于维护和扩展。

总之,为了在一个上下文中而不是在另一个上下文中的聚合根的实体编写命令,我们需要遵循领域驱动设计的原则,使用聚合根、领域事件、领域服务和仓库来确保实体之间的一致性,并在不同的上下文之间传递信息。

相关搜索:在React中使用另一个上下文中的上下文在另一个框架的上下文中运行JQuery可以在react (钩子)中使用另一个上下文中的上下文吗?为什么我的应用程序的某些部分可以在一个上下文中工作,而不能在另一个上下文中工作?在CQRS命令端从另一个有界上下文中检索数据使用实体框架核心2在不同的有界上下文中存储对多个对象的引用在ASP.NET中,有没有办法遍历上下文中相同类型的实体?实体框架-在调用SaveChanges()以添加/删除实体之前,从上下文中获取更新的数据库集正在获取对象(...)在我的拖放上下文中不是一个函数。我正在使用React在创建访问同一上下文中的实体的自定义验证属性时,如何解析循环引用?在Rails的rspec中,我如何编写/编辑我的测试文件,以便特定上下文中的示例按设定的顺序运行?实体框架4 - 在持久性不知情的上下文中使用CTP5(代码优先)映射非公共属性这个错误有没有解决方法:在"Connect(App)“的上下文中找不到"store”。要么将根组件包装在<Provider>中在一个Spring应用程序上下文中配置两个不同的作业存储库。这样做对吗?对于大型堆栈,当您编写自己的自定义cypher查询以进行突变时,如何使用存储在Apollo Server上下文中的user对象?在useContext中已经填充的数组,当我在同一上下文中的函数中访问它时,会不会给我一个空数组?使用来自另一个上下文的第三个实体在两个实体之间创建映射的最佳方法一个类型有没有可能有不同的定义,这取决于它是否在常量表达式上下文中定义?在NGRX选择器的上下文中,如何创建一个将返回一组对象的选择器,您已经给出了这些对象的id列表正则表达式(风格: PCRE)过滤器匹配字符串的第一个实例,然后只在第一个实例的上下文中过滤?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DDD 领域驱动设计落地实践系列:战略设计和战术设计

一个聚合只有一个聚合聚合聚合之内采用引用依赖方式对实体和值对象进行组织和协调,聚合聚合之间通过唯一 id 进行聚合之间协同。...构建聚合之前,我们需要先从实体集合中找到聚合,这就好比打仗时候讲究擒贼先擒王,王擒到了之后,归属于下面的小兵就会乖乖就范了。 那么我们应该怎么判断一个实体它就是聚合呢?...在这个过程中我们需要找出对应实体以及值对象,同时在这些实体中找出聚合,将存在存在紧密业务逻辑关系聚合实体以及值对象划分到一起形成聚合,再根据之前划分边界上下文将多个聚合划分到限界上下文中。...因此战术设计阶段,我们有个重要事项需要去完成,一个是微服务领域对象分析与边界划分,另一个是微服务结构分层。...在上文中我们实际已经根据一些业务域进行了聚合划分,那么在此处我们需要根据不同聚合以及已有的限界上下文继续划分微服务。有的微服务会包含多个聚合,有的微服务只有一个聚合

67310

谈谈代码:降低复杂度,从放弃三层架构到DDD入门

聚合一个聚合上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,聚合之间边界是松耦合。按照这种方式设计出来微服务很自然就是“高内聚、低耦合”。...实体和值对象目的都是抽象聚合若干属性以简化设计和沟通,有了这一层抽象,我们使用人员实体时,不会产生歧义,引用地址值对象时,不用列举其全部属性,一个限界上下文中,大幅降低误解、缩小偏差,两者区别如下...本文案例限界上下文中,人员有唯一性,一旦某个人员被系统纳入管理,它就被赋予了事件、流程和操作中被唯一识别的能力,值对象没有也不必具备唯一性。...领域服务层:由多个实体组合而成,一个方法可能会跨实体进行调用。代码过于复杂时候,可以将每个领域服务拆分为一个领域服务类,不是将所有领域服务代码放到一个领域服务类中。 实体:是一个充血模型。...虚拟机聚合聚合是虚拟机实体 上面提到实体属性与方法我们已经图中呈现出来了。

23410
  • DDD入门

    聚合一个聚合上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,聚合之间边界是松耦合。按照这种方式设计出来微服务很自然就是“高内聚、低耦合”。...那聚合是什么呢? 聚合主要目的是为了避免由于复杂数据模型缺少统一业务规则控制,导致聚合实体之间数据不一致性问题。...实体和值对象目的都是抽象聚合若干属性以简化设计和沟通,有了这一层抽象,我们使用人员实体时,不会产生歧义,引用地址值对象时,不用列举其全部属性,一个限界上下文中,大幅降低误解、缩小偏差,两者区别如下...本文案例限界上下文中,人员有唯一性,一旦某个人员被系统纳入管理,它就被赋予了事件、流程和操作中被唯一识别的能力,值对象没有也不必具备唯一性。...领域服务层:由多个实体组合而成,一个方法可能会跨实体进行调用。代码过于复杂时候,可以将每个领域服务拆分为一个领域服务类,不是将所有领域服务代码放到一个领域服务类中。 实体:是一个充血模型。

    53520

    事件风暴过程全体验-上篇

    正统事件风暴过程中: 第一步就是寻找事件并以“XX已YY”(“订单已提交”)完成时态描述这个事件 第二步就是寻找这个事件对应命令,通常是一个动宾结构(“提交订单”) 而在这里,对于不太复杂系统我会倾向与合二为一...分析业务对象生命周期 通常事件风暴介绍中,“分析生命周期”经常就是一句话带过,但这里我会建议大家显式地把生命周期画出来,这样对于后续分辨聚合/实体/值对象会很有帮助。 ?...另一类是一条线段,可见他们是有生命周期,期间是带有状态,这些就是传说中实体了。 那哪些是聚合呢? 简单来看,就是看这些点和线归属。...再看“警报升级会议”,看起来没有案件就没有它存在,所以它应该是属于“案件记录”这个聚合里面的一个实体,但如果我们扩展一下分析场景,比如假设有另外一个场景是说平常其实英雄也需要开例会,而且对应也是一样创建...细化聚合分析 这里我们先假设,会议有其他场景也用到,所以它属于另一个聚合。 那下面我们就可以把上面的业务对象按照聚合方式细化分析他们之间关系了。并可以补充上一些关键属性 ? Step4b.

    2.2K30

    降低复杂度,从放弃三层架构到DDD入门

    聚合一个聚合上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,聚合之间边界是松耦合。按照这种方式设计出来微服务很自然就是“高内聚、低耦合”。...那聚合是什么呢? 聚合主要目的是为了避免由于复杂数据模型缺少统一业务规则控制,导致聚合实体之间数据不一致性问题。...实体和值对象目的都是抽象聚合若干属性以简化设计和沟通,有了这一层抽象,我们使用人员实体时,不会产生歧义,引用地址值对象时,不用列举其全部属性,一个限界上下文中,大幅降低误解、缩小偏差,两者区别如下...本文案例限界上下文中,人员有唯一性,一旦某个人员被系统纳入管理,它就被赋予了事件、流程和操作中被唯一识别的能力,值对象没有也不必具备唯一性。...领域服务层:由多个实体组合而成,一个方法可能会跨实体进行调用。代码过于复杂时候,可以将每个领域服务拆分为一个领域服务类,不是将所有领域服务代码放到一个领域服务类中。 实体:是一个充血模型。

    32520

    代码复杂度怎么降低?

    聚合一个聚合上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,聚合之间边界是松耦合。按照这种方式设计出来微服务很自然就是“高内聚、低耦合”。...那聚合是什么呢? 聚合主要目的是为了避免由于复杂数据模型缺少统一业务规则控制,导致聚合实体之间数据不一致性问题。...实体和值对象目的都是抽象聚合若干属性以简化设计和沟通,有了这一层抽象,我们使用人员实体时,不会产生歧义,引用地址值对象时,不用列举其全部属性,一个限界上下文中,大幅降低误解、缩小偏差,两者区别如下...本文案例限界上下文中,人员有唯一性,一旦某个人员被系统纳入管理,它就被赋予了事件、流程和操作中被唯一识别的能力,值对象没有也不必具备唯一性。...领域服务层:由多个实体组合而成,一个方法可能会跨实体进行调用。代码过于复杂时候,可以将每个领域服务拆分为一个领域服务类,不是将所有领域服务代码放到一个领域服务类中。 实体:是一个充血模型。

    49700

    大家一直在谈领域驱动设计(DDD),我们互联网业务系统是这么实践

    设计领域模型一般步骤如下: 根据需求划分出初步领域和限界上下文,以及上下文之间关系; 进一步分析每个上下文内部,识别出哪些是实体,哪些是值对象; 对实体、值对象进行关联和聚合,划分出聚合范畴和聚合...实体一个对象由其标识(不是属性)区分时,这种对象称为实体(Entity)。...不同上下文集成时,会出现模型概念公用,商品模型会存在于电商各个上下文中订单上下文中如果你只关注下单时商品信息快照,那么将商品对象视为值对象是很好选择。...聚合一个非常重要概念,核心领域往往都需要用聚合来表达。其次,聚合在技术上有非常高价值,可以指导详细设计。 聚合实体,值对象和实体组成。 如何创建好聚合?...抽奖上下文中,我们通过抽奖(DrawLottery)这个聚合来控制抽奖行为,可以看到,一个抽奖包括了抽奖ID(LotteryId)以及多个奖池(AwardPool),一个奖池针对一个特定用户群体

    2.4K91

    领域基本概念字典

    命令可以是用户发起,也可以是第三方系统调用或者定时器触发等,最后对事件进行分类,整理出实体聚合聚合以及限界上下文。...栗子说明 商品域,商品实体则对应着一个具体 SKU 商品,包含着标题和金额,现在课程、会员服务。...需要注意是,既然是领域事件,他们便应该从领域模型中发布。领域事件最终接收者可以是本限界上下文中组件,也可以是另一个限界上下文。...举例说明 上图说明聚合聚合关系,交易聚合一个唯一聚合交易单,交易单组织了消费者实体、商品实体、商铺实体、优惠券实体同时消费金额之对象。...一个聚合只有一个聚合聚合聚合内对实体和值对象采用直接对象引用方式进行组织和协调,聚合聚合之间通过 ID 关联方式实现聚合之间协同。

    77220

    领域基本概念字典

    命令可以是用户发起,也可以是第三方系统调用或者定时器触发等,最后对事件进行分类,整理出实体聚合聚合以及限界上下文。...栗子说明 商品域,商品实体则对应着一个具体 SKU 商品,包含着标题和金额,现在课程、会员服务。...需要注意是,既然是领域事件,他们便应该从领域模型中发布。领域事件最终接收者可以是本限界上下文中组件,也可以是另一个限界上下文。...上图说明聚合聚合关系,交易聚合一个唯一聚合交易单,交易单组织了消费者实体、商品实体、商铺实体、优惠券实体同时消费金额之对象。...一个聚合只有一个聚合聚合聚合内对实体和值对象采用直接对象引用方式进行组织和协调,聚合聚合之间通过 ID 关联方式实现聚合之间协同。

    1.1K30

    从MVC到DDD架构演进

    1个聚合 1到多个实体 若干值对象 多个DomainService 1个Factory:新建聚合 1个Repository:聚合仓储服务 聚合(AggregateRoot) 聚合本身也是一个实体聚合可以包含其他实体...资源库以聚合整体管理对象。因此,一个聚合只能有一个资源库对象,那就是以聚合命名资源库。除此之外其他对象,都不应该提供资源库对象。...如果是用Mybatis实现,那么repository需要加入多个mapper引用,再手动做拼装。 这里有一个经典Hibernate笛卡尔积问题,答案是聚合中,一般不会加在大量关联实体对象。...一个上下文中包含了相同领域知识,角色在上下文中完成动作目标; 边界体现在以下几方面: 领域逻辑层:确定了领域模型业务边界,维护了模型完整性与一致性,从而降低系统业务复杂度; 团队合作层:限界上下文一般也是用户换分团队依据...; 技术实现层:限界上下文可当成是微服务划分边界; DDD不足 DDD架构作为一套先进方法论,很多场景能发挥很大价值,但是DDD也不是银弹。

    1.3K31

    代码复杂度

    聚合一个聚合上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,聚合之间边界是松耦合。按照这种方式设计出来微服务很自然就是“高内聚、低耦合”。...那聚合是什么呢? 聚合主要目的是为了避免由于复杂数据模型缺少统一业务规则控制,导致聚合实体之间数据不一致性问题。...实体和值对象目的都是抽象聚合若干属性以简化设计和沟通,有了这一层抽象,我们使用人员实体时,不会产生歧义,引用地址值对象时,不用列举其全部属性,一个限界上下文中,大幅降低误解、缩小偏差,两者区别如下...本文案例限界上下文中,人员有唯一性,一旦某个人员被系统纳入管理,它就被赋予了事件、流程和操作中被唯一识别的能力,值对象没有也不必具备唯一性。...领域服务层:由多个实体组合而成,一个方法可能会跨实体进行调用。代码过于复杂时候,可以将每个领域服务拆分为一个领域服务类,不是将所有领域服务代码放到一个领域服务类中。 实体:是一个充血模型。

    83845

    由Spring应用瑕疵谈谈DDD概念与应用(一)

    它提供层之间信息传递,实现业务对象持久化,包含对用户界面层支持性库等。 基本概念 实体(Entity) 当一个对象由其标识(不是属性)区分时,这种对象称为实体(Entity)。...聚合定义了一组具有内聚关系相关领域对象集合,我们可以把聚合看作是一个修改数据单元。 聚合属于实体对象,它是领域对象中一个高度内聚核心对象。...(聚合具有全局唯一标识,实体只有聚合内部有唯一本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象说法) 若一个聚合仅有一个实体,那这个实体就是聚合;但要有多个实体,我们就要思考聚合内哪个对象有独立存在意义且可以和外部领域直接进行交互...DDD中,解系统可以映射为一个个限界上下文,限界上下文就是软件对于问题域一个特定、有限解决方案。 日常开发中,我们通常会将一个大型软件系统拆分成若干个子系统。...边界内,每一个模型概念,包括它属性和操作,都具有特殊含义。 将一个限界上下文中所有概念,包括名词、动词和形容词全部集中在一起,我们便为该限界上下文创建了一套通用语言。

    86720

    后端开发实践系列——领域驱动设计(DDD)编码实践

    DDD战略设计中,我们已经通过限界上下划分将一个软件系统拆分为了不同“模块”,在这样前提下,再在某个限界上下文中来讨论内聚性将比大泥球系统中讨论变得简单得多。...(不同限界上下文中都有各自Product,有些Product是聚合,有些不是) 除了内聚性和一致性,聚合还有以下特征: 聚合实现应该与框架无关:既然DDD讲求业务复杂度和技术复杂度分离,...聚合一定是实体对象,但是并不是所有实体对象都是聚合,同时聚合还可以拥有其他子实体对象。聚合ID整个软件系统中全局唯一,而其下实体对象ID只需单个聚合下唯一即可。...另外,需要指明是,实体和值对象划分并不是一成不变,而应该根据所处限界上下文来界定,相同一个业务名词,一个限界上下文中可能是实体另外限界上下文中可能是值对象。...比如,订单Order采购上下文中应该建模为一个实体,但是物流上下文中便可建模为一个值对象。 ---- 聚合家——资源库 通俗点讲,资源库(Repository)就是用来持久化聚合

    1.2K31

    微服务中使用领域事件|洞见

    但是实际应用中,我们经常发现一个用例需要修改多个聚合情况,并且不同聚合还处于不同限界上下文中。比如,当你电商网站上买了东西之后,你积分会相应增加。...活动中,团队先通过头脑风暴形式罗列出领域中所有的领域事件,整合之后形成最终领域事件集合,然后对于每一个事件,标注出导致该事件命令(Command),再然后为每个事件标注出命令发起方角色,命令可以是用户发起...最后对事件进行分类整理出聚合以及限界上下文。 事件风暴还有一个额外好处是可以加深参与人员对领域认识。需要注意是,事件风暴活动中,领域专家是必须在场。更多有关事件风暴内容,请参考这里。...另外需要注意是,限界上下文之内使用领域事件时,我们依然需要遵循“一个事务只更新一个聚合原则,违反之往往意味着我们对聚合拆分是错。...如果JTA不是选项,那么可以考虑采用事件表方式。这种方式首先将事件保存到聚合所在数据库中,由于事件表和聚合表同属一个数据库,整个过程只需要一个本地事务就能完成。

    76880

    领域驱动设计

    实际上领域中,通过我们消息总线发送信息没有任何现实结果。 处理 这是模棱两可并且模糊描述,处理过程中会发生什么? 支付网关 另一个实现。实际上此处更为重要是支付一些方式不是支付实现。...上下文可能会以如下方式被创建(但是不限于): 团队组织方式 代码库结构和布局 特定领域范围内被使用 我们目标是在上下文中保持一致性和统一性,不要由于上下外部领域分散精力。...服务层 有时候不可能将一个行为分配给任何一个类,无论是实体还是值对象。很多场景都是对多个类进行操作纯粹功能运算,不是一个单一类为该行为负责。...聚合拥有一致性边界,使得边界内类与对象图其他部分“断开连接”。每个聚合都有一个实体作为聚合”。 当我们创建聚合时,要确保聚合仍然被视为领域中有意义单元。...按照这些简单规则进行聚合: 具有全局身份,而其他实体只有本地身份 检查所有的常量是否被满足 聚合外面的实体仅仅持有对引用 删除操作会移除整个聚合所有内容 当有对象发生变化时,必须满足所有常量

    98190

    第三章、快速开始 -【23】战术设计

    战术设计 战术是对限定上下文进行详细设计,进一步讲就是对限界上下文中模型按业务规则拆分为实体、值对象以及通过对模型操作(领域事件)识别出来聚合实体。...一般关心属性值并不关心VO是什么; 聚合(Aggregate):可以简单理解为实体和值对象集合,本节后续会详细说明聚合概念; 领域事件(Domain Event):记录限界上下文中发生对业务产生重要影响事情...以下是此条规则建议实施步骤: 开始设计时一个聚合只包含一个实体,DDD中称为聚合; 填充与此聚合关系最紧密字段到聚合类别,同时需要注意业务场景,比如在一些场景下,描述(desc)是一定会和主数据同时修改...); 如果响应时间为实时,在这个聚合中加入另一个实体;如果非实时,则可以设计领域事件来设计实体关联响应关系; 设计测试用例,用来佐证模型设计是否太复杂,如果设计出来聚合不能被测试可以复查一下;...软件架构设计宗旨是满足业务前提下尽量简单,不是为了彰显技术,从而使简单系统人为复杂化。

    39441

    implicature语言学定义_论文用书上内容查重吗

    如何设计一个特殊预训练任务来融合词汇、语义和知识信息是另一个挑战。   ...我们使用TransE这样知识嵌入算法编码KG图结构,不是直接使用KG中基于图事实,然后将信息实体嵌入作为ERNIE输入。...第i个聚合器,由前一个聚合器输入token嵌入 和实体嵌入 被分别扔进多头自注意力中, 然后,第i个聚合器使用信息融合层实现token和实体序列相互整合,并且计算每个token和实体输出嵌入...既然我们任务类似于训练去噪自编码器,我们将此过程称为去噪实体自编码器(dEA)。考虑到 对于softmax层来说太大了,因此我们仅要求系统基于给定实体序列进行预测,不是基于整个KG。...训练中固定实体嵌入,并随机初始化实体编码模块参数。 5 总结   本文中,我们提出ERNIE将知识信息整合进语言表征模型。相应,我们提出知识聚合器和预训练任务dEA将文本和KG中异构信息融合。

    65720

    如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化

    :   场景1:一些不属于任何聚合对象,本身又可以当作一个不可变值来看待(省市区信息等),当然的确某个地区改名了可以作为一个值对象来表示。...二、场景1思考 整个问题解决方式,首先需要梳理清楚3个基本概念:“聚合”、“实体”、“值对象”这3者关系。这个我(如何一步一步用DDD设计一个电商网站(二)—— 项目架构)中有提及。...因为涉及到持久化,所以我们可以再通过分析这3种对象生命周期来帮助思考。   聚合:独立存在对象,是代表某个限界上下文中一个高内聚整体概念。...他生命周期是其所属上下文中所承担职责周期。   实体:无法独立存在,是聚合一部分,生命周期由所属聚合掌控。   ...缺点:会导致数据表列数较多,一个数据页存储数据量变少,影响数据库表使用性能。   2.把整个值对象序列化后作为所属实体/聚合数据列来存储。

    78330

    领域驱动设计DDD核心思想

    限界上下文应该由领域专家来主导划分,不是让开发人员来划分,大泥球 往往是开发人员无视业务专家建议,一意孤行所导致结果。领域专家心智模型将成为团队通用语言坚实基础。...限界上下文包括:输入适配器,例如用户界面;编排用例和管理事务应用服务;领域模型;输出适配器,持久化管理和消息发送器;3.战略设计之子域理想情况下,一个限界上下文对应一个子域,子域是整个业务领域一部分...映射种类合作关系共享内核客户-供应商跟随者防腐层开放主机服务(RESTful HTTP)已发布语言各行其道更可靠三种上下文映射基于SOAPRPCRESTful HTTP消息机制5.战术设计之聚合聚合一个或多个实体组成...,其中一个实体被称为聚合聚合组成还能包括值对象。...每个聚合实体控制着所有聚集在其中其他元素。每个聚合都会形成保证事务一致性边界。聚合四条基本规则在聚合边界内保证业务规则不变性。聚合要设计小巧。只能通过标识符引用其他聚合

    84830

    重新温习软件设计之路(5)

    订单已支付、订单已下达 (2)找出引发领域事件动作或命令 eg. 产品已上架、产品已下架 (3)找出与事件和命令相关实体聚合 eg....所谓战术设计,也称为低层设计,指如何具体地组织不同业务模型,换句话说:这些模型是啥角色(实体、值对象)?这些模型之间是啥关系(聚合聚合)?...子域和限界上下文不一定一一对应,有可能一个限界上下文中包含多个子域,也有可能一个子域横跨了多个限界上下文。目前实践中,通常一个限界上下文就对应一个独立系统,可以将其拆分为一个独立微服务。...区分实体和值对象意义在于,将变对象 和 不变对象区分开。 设定角色之间关系 识别出实体和值对象之后,就需要考虑它们之间关系了,DDD给了我们聚合聚合概念。...聚合(Aggregate Root)是从外部访问某个聚合起点,是这个聚合负责人或管理者,也是这个聚合对外接口人。比如,订单和订单项组成聚合之中,订单就是聚合

    46930
    领券