在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. ==和case之間的區別?
- 4. '#','%'和'$'之間的區別
- 5. | =和^ = css之間的區別
- 6. 「%〜dp0」和「。\」之間的區別?
- 7. .eq之間的區別。和==
- 8. ==和.equals()之間的區別?
- 9. `%in%`和`==`之間的區別
- 10. SPFile和PublishingPage類別之間的區別
- 11. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 12. NSthread和NStimer和NSNotifcation之間的區別?
- 13. Java和C#和.NET之間的區別
- 14. sys.log()和console.log()和console.error()之間的區別?
- 15. $ .ajax()和$ .get()和$ .load()之間的區別
- 16. javascript中的/ * * /和//之間的區別
- 17. python中的[]和[,,]之間的區別
- 18. QWidget的setStyleSheet和QApplication之間的區別
- 19. CKeditor的getHtml()和getData()之間的區別
- 20. make中的「$(shell ...)」和「$$(...)」之間的區別
- 21. C中的/ +和+之間的區別?
- 22. Alamofire的responseJSON和responseData之間的區別
- 23. WordPress的:site_id和blog_id之間的區別?
- 24. '|'之間的區別和 '+' 的位操作
- 25. 春季的/ **和/ *之間的區別
- 26. Satchmo的local_settings.py和settings.py之間的區別
- 27. String.Compare和CultureInfo的CompareInfo之間的區別
- 28. XMLReader.Create()和新的XMLTextReader()之間的區別
- 29. AppWidgetProvider的onDisabled()和onDeleted()之間的區別
- 30. Request.Cookies和Response.Cookies之間的區別
這是重複的: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