说我有这样的关系
Class Lion{
private int health;
public void eat(Food f){
health+=f.getweight();
}
}
Class Food{
private int weight;
}
然后,我是正确的说这种关系是一种关联,而不是聚合或组合。
我可以说Lion使用Food并像这样绘制UML图表
+-----+ +-----+
| Lion| _____uses___>|Food |
+-----+ +-----+
此关系也没有多重性,因为Lion没有Food的数组,食物也没有作为实例变量的Lions数组。与组合和聚合不同,其中关系具有多重性。
如果我希望Food也以同样的方式使用Lion,该怎么办?我是否在两个班级之间画了两支箭?
答案 0 :(得分:1)
<<uses>>
关系是一个依赖关系,而不是一个关联,这对Lion
和Food
很有意义,因为一旦吞下Food
,关联就会消失由Lion
。
关于聚合:这是关于对象的生命周期。共享聚合没有定义的语义,只能在域定义之后使用。复合聚合告诉聚合对象与聚合它的对象一起死亡。这没有多大意义。如果Lion
被拍摄,Food
仍在那里。
我不知道Food
将如何使用Lion
。
答案 1 :(得分:0)