Java中的关联,组合和聚合
协会
关联是指多个对象之间的关系。它指的是对象如何相互关联以及它们如何使用彼此的功能。组合和聚合是两种类型的关联。
组成
组成是强大的关联类型。如果一个对象拥有另一个对象,并且没有所有者对象就不能存在另一个对象,则称该关联为复合。考虑人类有一颗心的情况。这里的人类对象包含了心灵,没有人类就无法存在心灵。
聚合
聚集是一个弱关联。如果两个对象可以独立存在,则关联被称为聚合。例如,一个Team对象和一个Player对象。团队包含多个玩家,但是一个玩家可以不带团队而存在。
组成示例
//Car must have Engine
public class Car {
//发动机是汽车必不可少的一部分
private final Engine engine;
public Car () {
engine = new Engine();
}
}
//引擎对象
class Engine {}汇总示例
//Team
public class Team {
//玩家可以是0或更多
private List players;
public Car () {
players = new ArrayList();
}
}
//播放器对象
class Player {}