【发布时间】:2012-11-14 05:57:17
【问题描述】:
我对@987654322@ 有点困惑。尽管有大量的网站和论坛讨论这个话题,但在阅读了其中一些之后,我变得更加困惑。
我想知道以下是否正确:
1.) 聚合 - 如果整体被破坏,将存在。例如,Engine 可以在有或没有Car 的情况下存在。
2.) 组合 - 如果对象被销毁,则将不存在。例如,没有House,Room 就无法存在。
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);
}
}
我认为如果它是C0mposition,那么不应该有任何accessor mutator 函数。并且对象Room 只能在构造函数内部创建。并且持有 room 对象的实例方法必须是 Private ?我说的对吗?
注意:我再次用谷歌搜索,并访问了许多网站/论坛,试图消除我的疑虑。许多论坛上都发布了类似的问题,但我对此感到更加困惑。有人可以帮我消除我的疑虑。谢谢!
【问题讨论】:
标签: java associations uml composition aggregation