不同骨料的边界问题

阿图尔·雅罗斯(Artur Jarosz)

我对集合体的边界有疑问。我试图阅读有关聚合,聚合根和边界的信息,寻找一些代码示例,但我仍在努力。

我正在使用的应用程序是用于管理体系结构项目的应用程序。在应用程序的屏幕中,将出现一个屏幕,其中包含所选项目的所有详细信息,以及一个包含所选构造函数的所有作业的屏幕。

我有一个AggregateRoot-。ArchitectureProject它有一个ArchitectStages等等,并且有一个列表ConstructorJobs(因为它必须在屏幕上显示项目详细信息)。ConstructorJob有其名称,一些值和一个Constructor一个Constructor可以有一些ConstructorType对于我来说,Constructor是另一个AggregateRoot。我有一个问题ConstructorJob我应该放在哪里?什么应该负责管理?

我试图什么都没有什么存在的东西,ConstructorJob不能在无Project,但它必须有另外Constructor还有......我无法想象那Constructor将属于Project骨料,如ConstructorType将4级的孩子ID,所以搜索所有该类型的构造函数会很痛苦,不是吗?

我将不胜感激,如何处理这种情况的任何解释。

在此处输入图片说明

阿富汗

我认为您错过了一条重要规则,该规则通常会使您的生活更加轻松:

规则:按身份引用其他汇总

另请参见沃恩·弗农(Vaughn Vernon)的《实现域驱动设计》一,第10章-聚合。

重要的是要注意,如果一个聚合存在而没有另一个聚合是有意义的,那么从域驱动设计的角度来看聚合就不是那么关注。它更多地涉及交易边界因此,聚合应在仅应在同一事务中一起更改的元素周围创建边界,以保持一致性

所以我想,您将在不同的用例中更改项目,而您将更改构造器-我想可以在不同的项目中引用它。

这意味着您应该仅通过id引用聚合中的其他聚合,这样可以避免对具有深层次结构的巨大聚合建模。这也意味着,如果您的聚合会随着时间的推移而变得越来越大,那么您可能会错过了一些最初被建模为实体的新聚合,因此应单独使用。

对我而言,构造函数是另一个AggregateRoot。我对ConstructorJob有问题。我应该放在哪里?什么应该负责管理?

在您的情况下,我将通过以下方式对其进行建模:

所述ConstructorJob是一个值对象保持某些数据(姓名等),并且还以一个参考构造骨料但是,此引用不是对象引用方面的引用,就像您要使用聚合根的子实体一样。构造函数集合由ConstructorJob中的标识符(UUID,整数或您用作ID类型的任何对象)引用

ConstructorJob值对象将是部分项目聚集当然,项目聚合可以直接保存构造函数聚合的ID,但是我猜在您的情况下,值对象可能非常合适。

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是什么原因导致这个倾斜的边界问题?

来自分类Dev

goroutine是否适合大型并行计算边界问题?

来自分类Dev

JScrollPane中的Java图形和边界问题

来自分类Dev

JScrollPane中的Java图形和边界问题

来自分类Dev

泛型类的定义:类型边界问题

来自分类Dev

两个列表之间的部分 str_match,边界问题

来自分类Dev

使用变换旋转CSS属性时,如何防止悬停过渡时出现振动边界问题?

来自分类Dev

矩阵的边界值问题

来自分类Dev

边界半径问题

来自分类Dev

输入文字的边界半径问题

来自分类Dev

Scala视图边界链接问题

来自分类Dev

墙壁边界的 JavaFX 游戏问题

来自分类Dev

LINQ集团和骨料

来自分类Dev

猫鼬骨料

来自分类Dev

PHP imagettftext返回边界框与呈现的边界框不同

来自分类Dev

PHP imagettftext返回边界框与呈现的边界框不同

来自分类Dev

不同宽度的中间对齐(中心)边界

来自分类Dev

实体模型的轮廓/边界与材料的颜色不同?

来自分类Dev

在不同大小的Google地图上设置边界

来自分类Dev

IE的早期版本中的边界半径问题

来自分类Dev

提供边界右导致未对准问题

来自分类Dev

边界球体视锥剔除的问题

来自分类Dev

iPad,iPad 2上的边界半径问题

来自分类Dev

有关边界值检查的问题

来自分类Dev

如何识别和纠正边界框问题?

来自分类Dev

Fabric.js 偏移边界框问题

来自分类Dev

获得大熊猫的骨料

来自分类Dev

对不同的问题给予不同的分数

来自分类Dev

LINQ查询不同的问题