我理解的聚合,关联,组合区别

         
bruce
03-06-17 26 2601 1

聚合,关联,组合 是对象之间的三种关系。从某种意义上说,继承是一种类的纵向关系,而聚合,关联,组合是对象的横向关系。


其关系强弱为 关联<聚合<组合

关联:在程序中相当于把已经实例化的对象A做为另一对象B方法的参数传递引用。

组合:即为内部类

聚合:其做法介于两者之间。不过我更觉得聚合相当于一个在外部已经申明的A,然后把A放在B中做为一个变量使用。

不知我理解的是不是正确,请大家从 **实现** 的角度发表一下意见吧。

1
cc
2003-06-18 08:44

聚合是1对多

1的那个要有一个collection储存多的那个

bruce
2003-06-18 10:02


CC,抱歉的很,实在不能认同你的说法。

你说的只是聚合中的一种情况而已。

象组合的实现:内部类。 一个类里面也可以有多个内部类,这同样是一对多的关系。

fuzhou
2003-06-18 10:12

不太理解,组合怎么会和内部类对应,我觉得组和纯粹表明的是一种对象之间的关系,而内部类在java中应该是一种多继承关系的某种实现?

cc
2003-06-18 11:09

没有你想象的那么复杂

组合就是一种很强烈的关联,必须在被组合对象生成的时候,组合对象也就必须生成了

像这样



public class a{

Collection bs = null;

public a(){
bs = new Collection();
bs.add(new b());
}

}

public class b{

}


6Go 1 2 3 4 ... 6 下一页