首页 新闻 会员 周边

想问下聚合的3种形式之间的区别

0
悬赏园豆:100 [已解决问题] 解决于 2008-09-03 23:01

一直以来多聚合的定义都拿捏不准(聚合的定义好像就是把一类功能全部都放在一起,我就知道这肤浅的定义=。=)

想请那位能解释下

最好能详细点

书上聚合的3种关系分别为

无聚合--用线表示

共享--用线加空心菱形箭头表示

复合--用线加实心菱形箭头表示

 

ps:最好能给出每种的定义并用实例解释

 

小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2008-09-03 11:15
< >
分享
最佳答案
0

1. 其实你所说的无聚合,应该是关联吧,无聚合这个词我是第一次听说。这种表示就是一个简单的引用,如class A中引用了class B、C、D的实例。

 2.聚合,表示的是整体部分的关系,如class A中包含了几个部分:B、C、D,它们之间的关系比较弱,也就是说A对象不存在了,但是B、C、D对象仍然可以存在。

3.复合,也叫做组合,是一种特殊的聚合,更多表示的是一种“拥有”的关系,如class A中包含了几个部分:B、C、D,它们之间的关系比较强,如果A对象不存在了,则B、C、D对象也会不存在;如果拷贝了A对象,则B、C、D对象也会跟着一起拷贝。

举个例子:计算机外接打印机,它们之间就是就是聚合的关系,计算机不存在了,打印机还可以继续使用;

或者屋子Room中有桌子Desk、椅子Chair等,Room对象消失了,但是Desk、Chair等还可以继续使用,所以它们之间还是聚合关系;

但是有一辆车Car,它包含了引擎Engine、油箱OilBox等,如果Car不存在了,Engine和OilBox也会随着不存在,这种关系就是组合了。

TerryLee | 老鸟四级 |园豆:3300 | 2008-09-03 11:26
其他回答(1)
0
老鸟,这园子的官方用词倒也贴切,呵呵:)
陛下 | 园豆:3938 (老鸟四级) | 2008-09-03 12:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册