我有点困惑Association, Aggregation and Composition
。尽管有大量的网站和论坛讨论这个话题,但在阅读了其中一些之后,我变得更加困惑。
我想知道以下是否正确:
1.) 聚合 - 如果整体被破坏,将存在。例如 anEngine
可以有或没有 a 存在Car
。
2.) 组合 - 如果对象被破坏,将不存在。例如,Room
没有 a 就不能存在House
。
3.) 关联 - 我不确定在什么情况下我们应该使用它。有人可以对此发表评论。
在编写用于聚合、组合和关联的 Java 代码时
4.)聚合
Class Car {
private Engine engine;
public void setEngine(Engine engine){
this.engine=engine;
}
public Engine getEngine(){
return engine;
}
}
我认为如果它是一个聚合关联,那么应该有accessors and mutators
定义。这个对吗 ?
根据我对聚合的定义,我提到如果Car
对象被销毁,则Engine
可以访问。但是,我没有在上面的代码中看到这种情况。如果 Car 对象被销毁,将无法像car.getEngine()
. 那么这是怎么发生的呢?
作品
Public House {
private Room room;
Public House (){
room = new Room (int noRooms, String nameOfHouse);
}
}
我认为如果它是 a C0mposition
,那么不应该有任何accessor mutator
功能。并且对象Room
只能在构造函数内部创建。并且持有该room
对象的实例方法必须是Private
?我对么 ?
注意:再一次,我用谷歌搜索,并访问了许多网站/论坛,试图消除我的疑虑。许多论坛上都发布了类似的问题,但我对此感到更加困惑。有人可以帮我消除我的疑虑。谢谢!