聚合和组合有什么区别
目录:
这 主要区别 聚合和组合之间是 聚合是具有“具有”关系的两个对象之间的关联,而组合是描述所有权的特殊类型的聚合。
面向对象编程 (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 日,可在此处获取。
![聚合和组合有什么区别 聚合和组合有什么区别](https://img.books-kingdom.com/images/002/image-4041.jpg)