关联是指多个对象之间的关系。它指的是对象如何相互关联以及它们如何使用彼此的功能。组合和聚合是两种类型的关联。
组成是强大的关联类型。如果一个对象拥有另一个对象,并且没有所有者对象就不能存在另一个对象,则称该关联为复合。考虑人类有一颗心的情况。这里的人类对象包含了心灵,没有人类就无法存在心灵。
聚集是一个弱关联。如果两个对象可以独立存在,则关联被称为聚合。例如,一个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 {}