聚集和组合
组合:如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就成为组合。
例如下面代码中Name类和Person类就是一个组合关系,其中Person拥有Name,但是Name不能独立存在。
class Name{
private String name;
public Name(String name){
this.name=name;
}
}
class Person{
private Name name;
public Person(Name name){
this.name=name;
}
}
聚集:聚集是关联的一种特殊形式,代表了两个对象之间的归属关系。聚集建模has-a关系。所有者对象称为聚集对象,它的类称为聚集类。而从属对象称为被聚集对象,它的类被称为被聚集类。
例如下面代码中Person和Address是一种聚合关系,Address脱离了Person还是有其存在的独立意义。
class Address{
private String address;
public Address(String address){
this.address=address;
}
}
class Person{
private Address address;
public Person(){
}
}