Dependencies 类图中的组合和依赖之间的区别?

Dependencies 类图中的组合和依赖之间的区别?,dependencies,uml,composition,class-diagram,Dependencies,Uml,Composition,Class Diagram,我知道,有人就这个案子问了同样的问题,但我还是不明白,我需要一个具体的答案。谢谢你:这些东西相距很远 A- - - ->B Dependency 这是最常见的事情。这意味着,A的代码是B类的,而A可见的B成员的更改可能需要A的更改 A------->B association (with none aggregation) 联系更紧密。关联可以有不同程度的贴近度,但即使是最薄弱的关联,也必须至少有一个适航箭头。(如果它们是双面的,则不显示)这意味着存在一些简单的方法来从A指向

我知道,有人就这个案子问了同样的问题,但我还是不明白,我需要一个具体的答案。谢谢你:这些东西相距很远

A- - - ->B  Dependency 
这是最常见的事情。这意味着,A的代码是B类的,而A可见的B成员的更改可能需要A的更改

A------->B association (with none aggregation)
联系更紧密。关联可以有不同程度的贴近度,但即使是最薄弱的关联,也必须至少有一个适航箭头。(如果它们是双面的,则不显示)这意味着存在一些简单的方法来从A指向B。例如,存在一个结构作为A.x.y.B。 该关联具有聚合等属性。它可以是
共享
组合

A<>------>B  association (with shared aggregation) 
它有严格的定义——这意味着,A或其实例有B的实例。它还意味着,这些B只存在于该关联的边界中。当协会或其所有人将被销毁时,将无法访问这些B。如果这些严格要求得不到满足,那就不是一篇作文

引自UML标准2.5: 复合聚合是一种强大的聚合形式,要求一个部件(见11.2.3)实例一次最多包含在一个复合实例中。如果删除了一个复合实例,其所有部件通常都会随之删除

其他变量和依赖项也存在


因此,依赖关系是合成所有者的祖先。

这些东西彼此相去甚远

A- - - ->B  Dependency 
这是最常见的事情。这意味着,A的代码是B类的,而A可见的B成员的更改可能需要A的更改

A------->B association (with none aggregation)
联系更紧密。关联可以有不同程度的贴近度,但即使是最薄弱的关联,也必须至少有一个适航箭头。(如果它们是双面的,则不显示)这意味着存在一些简单的方法来从A指向B。例如,存在一个结构作为A.x.y.B。 该关联具有聚合等属性。它可以是
共享
组合

A<>------>B  association (with shared aggregation) 
它有严格的定义——这意味着,A或其实例有B的实例。它还意味着,这些B只存在于该关联的边界中。当协会或其所有人将被销毁时,将无法访问这些B。如果这些严格要求得不到满足,那就不是一篇作文

引自UML标准2.5: 复合聚合是一种强大的聚合形式,要求一个部件(见11.2.3)实例一次最多包含在一个复合实例中。如果删除了一个复合实例,其所有部件通常都会随之删除

其他变量和依赖项也存在


因此,依赖性是合成所有者的祖先。

既然Gangnus没有正确解释合成的含义,我就不得不这么做

正如Gangnus所解释的那样,聚合是一种与部分-整体关系的预期含义相关联的特殊形式,但没有精确的语义(UML规范说:“共享聚合的精确语义因应用领域和建模者而异”)。例如,我们可以在类
汽车
发动机
之间以及类
课程
讲座
之间建立聚合模型,因为发动机是汽车的一部分,讲座是课程的一部分

组合(在UML规范中也称为“复合聚合”)是一种特殊的聚合形式,其中组件实例一次最多是一个聚合实例的一部分(也就是说,它不能在多个聚合之间共享)。这意味着
汽车
发动机
之间的聚合是一个组合(因为发动机不能同时在两辆汽车之间共享),而
课程
讲座
之间的聚合不一定是一个组合,因为讲座可以在两门课程之间共享(例如,数据库管理课程和软件工程课程可以共享一堂关于UML的讲座)。这意味着聚合端的组合关联端的多样性要么是
1
0..1
,而在非复合聚合的情况下也可能是
*


除此之外,构成的主要特征(具有专有部分),合成也可能在聚合及其组件之间具有生命周期依赖关系,这意味着当一个聚合被删除时,它的所有部分都会随之删除。然而,这只适用于某些合成情况,而不适用于其他情况,因此它不是一个定义特征。UML规范规定:在删除复合实例之前,可以从复合实例中删除零件,因此不能将其作为复合实例的一部分删除。“在我们的
汽车
-
发动机
合成的例子中,很明显,发动机可以在汽车被毁之前从汽车上拆下,在这种情况下,发动机不会被毁,可以重复使用。

由于甘努斯没有正确解释合成的含义,我不得不这样做

正如Gangnus所解释的,聚合是一种特殊形式的关联,它与部分-整体关系的预期含义相关联,但没有精确的语义(UML规范说:“共享聚合的精确语义因应用领域和建模者而异”)例如,我们可以在类
汽车
发动机
之间以及类
课程
讲座
之间建立聚合模型,因为发动机是汽车的一部分,讲座是课程的一部分

一篇作文(也是