说说 Java 类之间的组合关系以及聚合关系

Java 类是由任意数量以及任意类型的其他类构成。这就会涉及到“组合”和“聚合”的关系概念:

1 组合

组合(Composition)用来表示“拥有”关系(has-a relationship)。例如,电脑拥有 CPU,当电脑报废时,CPU 也会跟着报废。

在 Java 代码中,我们会在 A 类的构造方法中创建 B 类对象。这样当创建一个 A 类对象时,也会随之产生 B 类的对象;当 A 类的这个对象消亡时,它所包含的 B 类的对象也会随之消亡。也就是说,这两个类的生命周期是一致的。

2 聚合

聚合(Aggregation)动态的组合。例如,电脑和人一起下棋。当电脑报废时,人就会另找一台新电脑。

在 Java 代码中, A 类的对象在创建时不会立即创建 B 类的对象,而是在 A 类的某个方法中设计一个参数,用于接收 B 类对象。当 A 类的这个对象消亡时,它所接收的 B 类的对象没有影响。也就是说,这两个类的生命周期是不一致的。


创建一个新类时,首选“组合”关系,因为它简单且设计清晰。

发布了601 篇原创文章 · 获赞 668 · 访问量 88万+

猜你喜欢

转载自blog.csdn.net/deniro_li/article/details/103835240