我正在阅读这三个概念的理论,它说: 这三者都有关系,聚合和组合是关联类型:
联合没有所有者
另外两位是单身老板。
在聚合中,孩子可以独立存在。如果删除所有者,则不会删除子项。如果删除所有者,则子项仍然存在,并且可以作为子项分配给其他对象。
我这样实现了这个:
public class Aggregation {
public static void main(String[] args) {
HardDisk hardDisk = new HardDisk();
Laptop laptop1 = new Laptop(hardDisk);
System.out.println(laptop1);
System.out.println(laptop1.hardDisk);
laptop1 = null;
System.gc();
Laptop laptop2 = new Laptop(hardDisk);
System.out.println(laptop2);
System.out.println(laptop2.hardDisk);
}
}
class HardDisk {
}
class Laptop {
public HardDisk hardDisk;
public Laptop(HardDisk hardDisk) {
this.hardDisk = hardDisk;
}
}
我实现了这样:
public class Composition {
public static void main(String[] args) {
House house = new House();
}
}
class House {
private final Kitchen kitchen = new Kitchen();
public Kitchen getKitchen() {
return kitchen;
}
}
class Kitchen {
}
这种理解是正确的还是我错过了某些东西。我也是为了聚合和组合而做的。那些我们没有任何所有者的协会怎么样?应该怎么做?另外如果A类引用了B而B引用了A那么它将是什么类型的关联?