我试图理解组合和聚合之间的区别,到目前为止我所理解的关键区别在于对象的生命周期。
那么如果我有一个办公室和一个地址类,那么关系是类图中的组合还是聚合?
我对这个概念很陌生。任何帮助表示赞赏
谢谢
我试图理解组合和聚合之间的区别,到目前为止我所理解的关键区别在于对象的生命周期。
那么如果我有一个办公室和一个地址类,那么关系是类图中的组合还是聚合?
我对这个概念很陌生。任何帮助表示赞赏
谢谢
定义 OMG UML 上层结构规范的关键特性是
在组合中,对象的生命周期受容器的限制。
在聚合中,对象的生命周期是相互独立的。
在两个类之间具有聚合关系意味着该类的对象包含其他类的一个或多个对象。示例:部门-员工。一个部门包含多名员工。
组合关系本身就是一种聚合关系。除了上述之外,它还说整体和部分的生命周期是紧密耦合的。即整体不能没有部分而存在,部分不能没有整体而存在。示例:办公室-部门。办公室没有部门就无法存在,而没有办公室的部门也没有任何意义。部门-员工不是复合关系,因为员工可以轻松地辞掉工作、退休或被公共汽车碾过,而不会影响公司。公司可能会破产,员工仍然可以继续生活。
在您的示例中,我会说,办公室地址关系既不是聚合也不是组合,因为一个不包含另一个。这是一个相当简单的关联(两端没有菱形)。