UML聚合與組合


  •  聚合和組合的區別
    1.  聚合關系是“has-a”關系,聚合的整體與部分間關系較弱,
      其代表部分的對象與代表整體的對象生存期無關,刪除了代表整體的對象不一定會刪除代表部分的對象.
    2.  組合關系是“contains-a”關系,組合的整體與部分間關系較強,
      其代表部分的對象與代表整體的對象具體相同的生存期,當刪除代表整體的對象,同時也會刪除了代表部分的對象.
  •  聚合與組合示例
    1.  《大話》里的大雁的例子很貼切大雁喜歡熱鬧害怕孤獨 所以它們一直過着群居的生活 這樣就有了雁群
    2.  每一只大雁都有自己的雁群,每個雁群都有好多大雁,
       大雁不會因為它們的群主將雁群解散而無法生存,大雁與雁群的關系就可以稱之為聚合
    3.  每只大雁都有兩只翅膀,而當大雁掛了雁翅也就不能單獨生存了,大雁與雁翅的關系就叫做組合
  •  聚合與組合的類圖
    1.  聚合示例類圖:
    2.  組合示例類圖:
  •  聚合與組合示例代碼
    1.  聚合示例代碼
      public  class GooseGroup  
      {
          public Goose goose;
          
          public GooseGroup(Goose goose)
          {
              this.goose = goose;
          } 
      }
    2.  組合示例代碼
      public class Goose  
      {
          public Wing wing;
          
          public Goose()
          {
              wing =new Wing();
          }
      }


免責聲明!

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



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