在OOP建模中,“has-a”关系和“合成关系”之间是否有区别?has-a和......之间的区别?
1
A
回答
4
这两个陈述通常意味着组成。
但在我看来,组成,总是意味着组成而有-一个有时意味着聚集(但不是在下面的图片)。在UML中,它看起来像:
alt text http://www.atomicobject.com/images/UML_CompositionAggregation.png
1
不是真的,因为两者都表明父对象包含子类的实例。它主要是一种语义上的区别,其中“has-a”表示两个不同对象之间的关联,其中“composed-of”表示该孩子是父母的一个组成部分。
+0
关于其他答案的一个有趣问题是,引擎是否可以拥有与安装它的汽车无关的身份。 我会断言答案是肯定的。我买了一辆汽车的更换引擎。我希望安装人员能够区分他们从安装的引擎中移除的引擎。 尽管如此,在许多应用中,引擎可以被模拟为汽车的子对象,而不会造成任何损害。 – 2010-04-28 13:18:08
相关问题
- 1. 之间的〜/和的区别../
- 2. '#','%'和'$'之间的区别
- 3. {!!之间的区别!!}和{{}}
- 4. '+ ='和'= +'之间的区别?
- 5. “。+”和“。+?”之间的区别
- 6. .eq之间的区别。和==
- 7. #。/和#之间的区别。 ./
- 8. !=和!之间的区别==
- 9. “%〜dp0”和“。\”之间的区别?
- 10. | =和^ = css之间的区别
- 11. 之间的区别。和#
- 12. ==和case之间的区别?
- 13. “**/* /”和“** /”之间的区别?
- 14. jQuery - '。'之间的区别和“#”
- 15. “?1”和“?”之间的区别
- 16. `%in%`和`==`之间的区别
- 17. fmod和%之间的区别
- 18. 之间的区别:+和:+
- 19. 类区域和堆之间的区别
- 20. SPFile和PublishingPage类别之间的区别
- 21. 子类和类别之间的区别?
- 22. System.Timers.Timer Enabled = true和.Start()之间的区别Enabled = true和.Start()之间的区别
- 23. isForeground()和onExposed和onObscured之间的区别
- 24. $ .ajax()和$ .get()和$ .load()之间的区别
- 25. 和intent和setcontentview之间的区别
- 26. Java和C#和.NET之间的区别
- 27. NSthread和NStimer和NSNotifcation之间的区别?
- 28. sys.log()和console.log()和console.error()之间的区别?
- 29. 关注与责任之间的区别(即SRP和SoC之间的区别)?
- 30. make中的“$(shell ...)”和“$$(...)”之间的区别
这是重复的:http://stackoverflow.com/questions/731802/what-is-the-difference-between-composition-and-association-relationship – Sunny 2010-04-27 13:10:21
阳光,是的,谢谢,看起来像一个重复。我没有看到那一个。 – fig 2010-04-27 13:20:24