1.關(guān)聯(lián)(Association)
類(lèi)之間的關(guān)聯(lián)大多用來(lái)表示變量實(shí)例持有著對(duì)其他對(duì)象的引用。
Phone擁有一個(gè)對(duì)Button的引用。
2.聚合(Aggregation)
聚合是關(guān)聯(lián)的一種特殊形式,它意味著一種整體/部分(whole/part)的關(guān)系。
一個(gè)整體不能是它自己的一部分。 因此 ,實(shí)例不能形成聚合回路,一個(gè)單獨(dú)的對(duì)象不能夠成為它自己的聚合,兩個(gè)對(duì)象不能互相聚合,三個(gè)對(duì)象不能形成一個(gè)聚合環(huán)。
下圖為實(shí)例間的非法聚合循環(huán):
3.組合(Composition)
組合是一種特殊的聚合形式。
UML對(duì)組合的定義:
①如同聚合,實(shí)例不能有循環(huán)。
②一個(gè)被所有者實(shí)例不能同時(shí)有兩個(gè)所有者。
③所有者負(fù)責(zé)被組合的對(duì)象的生命周期的管理。如果所有者被銷(xiāo)毀,被所有者也必須跟著一起被銷(xiāo)毀,如果所有者被復(fù)制,被所有者也必須跟著一起被復(fù)制。基于此點(diǎn),可以用組合來(lái)描述深拷貝。
下圖為非法組合:
4.參考資料
⑴Robert Martin,UML for java programmers,2004
posted on 2007-08-19 05:00
前方的路 閱讀(3369)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
結(jié)構(gòu)與算法