聚合
聚合其實是關聯的乙個特例,表示了兩個物件之間「part of(部分-整體)」的關係,是一種弱關聯,部分的生命週期可以超越整體。在uml中,用整體端有空心菱形箭頭的雙向關聯修飾聚合。聚合的示例如下圖:
組合
組合其實是一種強形式的聚合,它具有強的擁有關係,整體與部分的生命週期是一致的。「部分」生存在整體中,它們與「整體」一起消亡。
「部分」物件依賴於「整體」物件,這種依賴性表現在兩個方面:
第一、「部分」物件一次只能屬於乙個組合物件;第
二、當組合物件銷毀時,它的所有從屬部分必須同時銷毀。
整體的重數必須是0或1。「部分」不能在整體間進行共享。在uml中,用整體端有實心菱形箭頭的雙向關聯修飾組合。
聚合的示例如下圖:
上圖中,郵件和它的標題及正文之間的關係作為組合關係建模可能是合理的,因為一旦郵件被刪除,就既不存在標題,也不存在正文體了,而它們存在時屬於唯一的乙個郵件。而郵件與附件之間的關係不太可能是用組合恰當的建模,因為在同一時間,同乙個附件可以屬於多個郵件,其次,很有可能附件可以儲存,因此它們的生命週期將超過所附屬的郵件的生命週期。
UML中聚合和組合的區別
一直以來,對uml的東西總是模稜兩可,對於類圖中的聚合和組合,知道兩種的區別,但過一段時間後總是分不清兩者誰是誰,唉,主要怪自己的語文沒有學好,呵呵!其實,對於聚合和組合,如果換成英文,就很好理解了 聚合就是 has a 組合就是 contains a 聚合是空心的菱形 組合是實心的菱形 這個比較好...
UML中的聯絡 聚合與組合的區別
uml中的聯絡 association 聚合 aggregation 和組合 composition 三個概念很相似,也很難理解。今天看到這篇文章解釋得很清楚,所以在這裡轉一下,希望能對需要的人有所幫助。聯絡 聯絡 association 表明某個物件可以向另乙個物件通過某種方式傳送訊息。傳送訊息的...
DDD中的聚合和UML中的聚合以及組合的關係
uml 聚合關係 成員物件是整體的一部分,但是成員物件可以脫離整體物件獨立存在。如汽車 car 與引擎 engine 輪胎 wheel 車燈 light 之間的關係為聚合關係,引擎 輪胎 車燈可以脫離車而存在,比如把乙個引擎換到另乙個汽車上也可以。組合關係 也表示的是一種整體和部分的關係,但是在組合...