在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