3

您有两个班级:A 级和 B 级。

为了成为实例,B 类需要有一个成员,即 A 类的对象。而且,B 类具有 A 类的所有特性,但不包括允许修改 A 类对象的功能。

B 类也有一些额外的特性,不使用继承的原因是因为如果 A 类的对象(用于实例 B 的对象)被更改,因此 B 类的实例的值也必须是改变了。

我用聚合来表示这种行为,但有些事情我不确定。一种是当 A 类的对象被销毁时,B 类的对象不会被销毁(即使对象 B 不再有意义,访问它的某些特性会引发运行时失败)。

我的意思是 B 类的对象引用 A 类的对象,而不是相反,就像在正常聚合中,通常对象将包含 B 类的对象。

这是否意味着它不是聚合而是组合?即使对象在被引用对象的生命周期结束后没有任何意义?或者这种行为应该如何成为模型?

4

1 回答 1

1

看这里 http://en.wikipedia.org/wiki/Object_composition#Aggregation

相反的聚合并不意味着所有权。这是你的情况。

销毁聚合对象后对象的行为如何,这与类图无关。

于 2013-04-05T07:41:01.203 回答