一个对象可以比另一个对象活得更久..什么意思

本文关键字:一个对象 什么 意思 | 更新日期: 2023-09-27 18:36:23

我正在研究设计模式。 在UML描述聚合中,它的定义是:A有B,B可以比A活。 描述的元素是:

A<>------B(有趣的箭头应该是菱形)

我根本不理解"OUTLIVE"的概念,即使我知道 B 类型在字段形式下在 A 中(属性......等)。

他们用这种"寿命"是什么意思??在这种情况下,B可以比A长寿?

一个对象可以比另一个对象活得更久..什么意思

这意味着 B 可以以某种方式从 A 外部引用。

与组合更容易形成对比,在组合中,B完全由A"拥有",然后当A变得无法访问时,B也自动成为垃圾。

因此,此处使用生命周期来定义可见性/范围。有点落后的推理。

请考虑以下代码。A 需要 B 来实例化,但销毁 A 不会破坏 B。

当类 C 创建一个新的 A 时,它会给它一个对它已经拥有的 B 的引用。现在,即使A被摧毁,超出范围,等等,B仍然"活着"。

class A
{
    private B b;
    public A(B bType)
    {
        this.b = bType;
    }
}
class B
{ 
}
class C
{
    private B b = new B();
    private A a;
    public C()
    {
        a = new A(b);
        a = null; // b is still alive
    }
}