聚合和组合有什么区别

目录:

Anonim

主要区别 聚合和组合之间是 聚合是具有“具有”关系的两个对象之间的关联,而组合是描述所有权的特殊类型的聚合。

面向对象编程 (OOP) 是软件工程中的主要范式。根据 OOP,对象彼此通信。类是创建对象的蓝图,而关联是两个或多个对象之间的连接。聚合和组合是描述对象或类之间关系的两种关联类型。

聚合、组合、OOP、UML

什么是聚合

聚合是描述对象之间“具有”关系的关联。例如,一个班级和一个学生与“有一个”关系相连。

图 1:带有聚合的 UML 图

在考虑上述课堂和学生场景时,学生对象不依赖于课堂对象。而且,破坏教室不会影响或破坏学生对象。因此,课堂与学生之间的关联是一种聚合。此外,统一建模语言 (UML) 是一种有助于开发软件系统的可视化建模语言。在 UML 中,菱形符号表示聚合。

什么是组合

组合是一种特殊类型的聚合,用于描述所有权。一个例子如下。

图 2:UML 图中的组成

在上图中,学校对象包含教室对象。由于学校对象包含教室对象,因此它是一个聚合,但它是一种特殊类型的聚合。如果我们销毁学校对象,那么教室对象也会被销毁。因此,它是一个组合,它意味着所有权。在 UML 中,突出显示的菱形符号代表组合。

聚合和组合之间的区别

定义

聚合是两个对象之间的关联,它描述了“具有”关系,而组合是暗示所有权的最具体的聚合类型。因此,这是聚合和组合之间的主要区别。

功能

在聚合中,销毁拥有对象不会影响包含对象。但是,在组合中,销毁拥有对象会影响包含对象。因此,这是聚合和组合之间的另一个区别。

UML 表示

此外,菱形符号表示 UML 中的聚合,而突出显示的菱形符号表示 UML 中的组合。

结论

在 OOP 中,对象相互通信。在这里,对象之间的关系是一种关联。聚合和组合是对象或类之间的两种关联。聚合和组合之间的区别在于,聚合是具有“具有”关系的两个对象之间的关联,而组合是描述所有权的特殊类型的聚合。

参考:

1. 6 5 Using Aggregation and Composition,People Career,2015 年 5 月 22 日,可在此处获取。

聚合和组合有什么区别