我在看作文。 “存储对组件的引用”是什么意思?
对我而言,这意味着将有两个类,并且将从另一个类中实例化一个类。它是否正确?你怎么能代表一种构成关系呢?
这个特定的例子与聚合有何不同? (或者需要一个对象存储对其范围内创建的实例化类的引用。)
即。 (Ruby语法)
class A
def initialize
#stuff
end
end
class B
def initialize
@many_a_instances = []
end
def attach_an_A
@many_a_instances << A.new
end
end
在B类中定义A类会更好吗?
答案 0 :(得分:0)
鉴于雷鸣般的热情,问题是回答者......答案是这样的(基于与同事和朋友的对话):
如何定义类在某种程度上独立于不同类的实例之间的关系(这取决于类的实例化方式)。
如果实例定义了对实例的引用,则引用实例的生命周期取决于保存引用的对象。这定义了一种组合关系。
但是,如果您实例化一个对象,然后将对该对象的引用传递给另一个类,那么这将是一个聚合的示例。因为两个实例化对象的生命周期彼此独立,但是一个对象仍然引用另一个对象。
所以类相同,但实例之间的关系不同。并且就定义类的位置而言,这可能是特定于用例的。
任何更好的答案都会被标记为接受此答案:)