在组合关系中存储对组件 class 的引用

Store a reference to component class in compositional relationship

我在看作文。 'store a reference to a component' 是什么意思?

对我来说,这意味着将有两个 class,其中一个 class 将从另一个 class 中实例化。这个对吗?您还能如何表示组合关系?

这个特定示例与聚合有何不同? (或者这需要一个对象存储对在其范围之外创建的实例化 classes 的引用..)

即(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

在class B 中定义class A 会更好吗?

鉴于提问者的热情如雷...答案是这样的(基于与同事和朋友的交谈):

如何定义 classes 在某种程度上独立于不同 classes 的实例之间的关系(这取决于 classes 的实例化方式)。

如果实例定义了对实例的引用,则引用实例的生命周期取决于持有引用的对象。这定义了一个组成关系。

但是,如果您实例化了一个对象,然后将对该对象的引用传递给另一个 class,那将是一个聚合示例。因为两个实例化对象的生命周期是相互独立的,但是一个对象仍然引用另一个。

如此相同 class,但实例之间的关系不同。就定义 classes 的位置而言,这可能是特定于用例的。

任何更好的答案都将被标记为接受:)