UML中聚合和組合的區別


  聚合

  聚合其實是關聯的一個特例,表示了兩個對象之間“part of(部分-整體)”的關系,是一種弱關聯,部分的生命周期可以超越整體。在UML中,用整體端有空心菱形箭頭的雙向關聯修飾聚合。聚合的示例如下圖:

  

  組合

  組合其實是一種強形式的聚合,它具有強的擁有關系,整體與部分的生命周期是一致的。“部分”生存在整體中,它們與“整體”一起消亡。

    “部分”對象依賴於“整體”對象,這種依賴性表現在兩個方面:

    第一、“部分”對象一次只能屬於一個組合對象;第二、當組合對象銷毀時,它的所有從屬部分必須同時銷毀。

    整體的重數必須是0或1。“部分”不能在整體間進行共享。在UML中,用整體端有實心菱形箭頭的雙向關聯修飾組合。

  聚合的示例如下圖:

   

  上圖中,郵件和它的標題及正文之間的關系作為組合關系建模可能是合理的,因為一旦郵件被刪除,就既不存在標題,也不存在正文體了,而它們存在時屬於唯一的一個郵件。而郵件與附件之間的關系不太可能是用組合恰當的建模,因為在同一時間,同一個附件可以屬於多個郵件,其次,很有可能附件可以保存,因此它們的生命周期將超過所附屬的郵件的生命周期。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM