我正在研究设计模式。 在UML描述聚合中,它定义为:A有B,B可以比A长。 描述的元素是:
A<> ------ B(有趣的箭头,应该是钻石)
我根本不理解“ OUTLIVE ”的概念,即使我理解B类型是在字段形式的A中(属性......等) )。
这个“活跃”的意思是什么?在这种情况下,B可以比A?
更活跃答案 0 :(得分:5)
这意味着B可以/以某种方式从外部引用。
与Composition形成对比更容易,其中B仅由A“拥有”,然后当A变得无法访问时,B也自动变为垃圾。
因此,此处使用生命周期来定义可见性/范围。有点落后的推理。
答案 1 :(得分:2)
请考虑以下代码。 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
}
}