gpt4 book ai didi

oop - 关联、聚合和组合有什么区别?

转载 作者:行者123 更新时间:2023-12-03 03:57:40 26 4
gpt4 key购买 nike

关联、聚合和组合之间有什么区别?请从实现的角度解释一下。

最佳答案

对于两个对象,FooBar 可以定义关系

关联 - 我与一个对象有关系。 Foo 使用 Bar

public class Foo {         
private Bar bar;
};

注意:请参阅Fowler's definition - 关键是 Bar 在语义上与 Foo 相关,而不仅仅是依赖项(如 intstring )。

组合 - 我拥有一个对象,并且我对其生命周期负责。当 Foo 死亡时,Bar 也会死亡

public class Foo {
private Bar bar = new Bar();
}

聚合 - 我有一个从别人那里借来的对象。当 Foo 死亡时,Bar 可能会继续存在。

public class Foo { 
private Bar bar;
Foo(Bar bar) {
this.bar = bar;
}
}

关于oop - 关联、聚合和组合有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com