UML中单行和关联行的区别

UML中单行和关联行的区别,uml,domain-driven-design,associations,Uml,Domain Driven Design,Associations,以下类图摘自一本书 在图6.4中,零件和采购订单之间有一条直线 行项目。而在图6.11中,有一个来自 采购订单行项目到零件 这两者有什么区别 在图6.4中,零件和采购订单之间有一条直线 行项目 在该图中,该关系(可能)可在两个方向上导航,这意味着零件和采购订单行项目相互参考/了解 通常,Purchage订单行项目类具有Part类型的属性,而Purchage订单行项目类具有Purchage类型的属性(没有指示多重性,假设它们都是1,否则它们是集合) 这是图11.29中E-F的情况,可导航关联实例,

以下类图摘自一本书
在图6.4中,零件和采购订单之间有一条直线
行项目。而在图6.11中,有一个来自
采购订单行项目到零件
这两者有什么区别

在图6.4中,零件和采购订单之间有一条直线 行项目

在该图中,该关系(可能)可在两个方向上导航,这意味着零件和采购订单行项目相互参考/了解

通常,Purchage订单行项目类具有Part类型的属性,而Purchage订单行项目类具有Purchage类型的属性(没有指示多重性,假设它们都是1,否则它们是集合)

这是图11.29中E-F的情况,可导航关联实例,共205页

在图6.11中,从采购订单行项目到零件之间有一个箭头

在该图中,关系只能在一个方向上导航,采购订单行项目参考/了解零件,但零件不知道/参考采购订单行项目了解/参考零件

通常,类Purchage订单行项目具有Part类型的属性,但类Part不具有Purchage订单行项目类型的属性(没有指示多重性,假设它们都是1,否则它们是集合)


这是图11.29中的案例I-J。图6.4中的可导航关联示例第205页,共

页。当采购订单被删除或存档时,行项目是否被保留?我从《领域驱动设计》一书中得到了这一点。但我不确定为什么图6.11中的设计更好,以及它如何保持invariant@MonuDidi
当采购订单被删除或归档时,行项目被带到一起
关于归档,不可能知道,对于已删除的采购订单,只有在组合的情况下才能确定,但在这两个图表中都没有组合,仅在第二种情况下使用聚合。第二个更好,至少是因为采购订单通过POLI(采购订单生成时获取价格)=>如果以后某个项目的价格发生变化,采购订单将保持不变,因为它必须保持不变,这就像采购订单有唯一的POLI副本,POLI有唯一的价格和数量副本一样。因此,一个项目的价格不能在采购订单之外改变。即,无法编辑项目价格,因为对其的引用在POLI内,在POLI外不可用。所以我的理解是有一份零件清单,上面有每个零件的价格。当POLI生成时,它包括零件对象当时的价格。然而,在图6.4中,它引用了零件,因此,如果零件价格发生变化,它将得到不受欢迎的POLI变化是的。零件的价格可以随时在其水平上发生变化。在6.4中,采购订单价格根据每个零件价格计算,因此,如果零件价格发生变化,采购订单价格也会发生变化,这是不可预期的。多亏了第二张图中零件价格的POLI副本,问题消失了。第二个图中聚合的目标是说一个POI由一个PO拥有,因此一个POI不能由多个POThanks共享。所以当我们谈论聚合器模式时。似乎有一个根对象保存子对象的副本,因此一旦构造了根对象,对子对象的更改就不会在根对象内传播。。正如下图所示,这似乎是聚合器模式的一个要点。。我说的对吗?