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 {}