论UML中组合与聚合的关系

          大家都知道,UML中有四种关系--关联、实现、泛化、依赖。其中,关联分为普通关联、组合和聚合。那么都表示整体与部分的组合和聚合到底有什么样的不同呢?它们之间有怎样的联系呢?

    1.联系

         首先, 聚合和组合是表示整体与部分之间关系的两种形式。

         其次,都用一条带有菱形的符号表示。

    2.区别

      虽然同样是整体与部分的关系表示,但是绝活通常是在定义好一个整体类后,在分析整体类的组成结构,找出一些类与该整体形成了聚合关系,并不要求整体和部分统一生存。就是说聚合中的部分可以脱离整体单独生存。

       而组合中却要求整体和部分具有统一的生存期,即一旦整体不存在,部分也就不复存在。整体与部分之间具有同生死共存亡的关系。

      下面就用生活中的一个例子来充分说明组合与聚合之间的关系。如图,鸟群由多只鸟组成一个群体成为鸟群。但鸟群和鸟的并不遵循共存亡的原理,因为死一只鸟,鸟群还在,也就是说鸟自身仅仅是组成鸟群的一个个体。

        而对于鸟自身来讲,翅膀是鸟身体的一部分,一旦鸟死了,翅膀还能单独存在吗?但鸟群和鸟的关系就不是这样的。所以这样来讲的话,聚合和组合就能分开了。

      

       既然说道关联关系了,就顺道将实现、泛化和依赖关系的理论都生活化,如下图。

                  

          米老师上课经常说:把知识和生活联系起来,和学过的知识联系起来。当将一些理论用生活中我们熟悉的事物来描述和理解,这样死板的理论就会被生活化,知识也就会转换成我们熟悉而熟知的生活常识,那么我们就可以更好的理解和运用这个理论了。

          希望这篇博客可以帮到大家,也欢迎大家给我指正和提意见哦。先谢谢了!

       

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值