UML中类图的四种关系

   在UML的类图中,类图之间的关系分为4中:关联(Association)、依赖(Dependency)、泛化(Generalization)和实现(Realization)。

    一、关联(Association)

    关联关系是一种“拥有”关系,它使一种类“知道”另一种类的属性和方法。举例:企鹅和气候两个类,企鹅需要‘知道’气候的变化和‘了解’气候规律,才去决定什么时候迁徙。像这样的关系,我们称为关联。
                                         
   (1)聚合(Aggregation):关联的一种弱的“拥有”关系。
     聚合关系体现的整体和部分的关系,且部分离开整体可单独存在。举例:企鹅群和企鹅。企鹅群是一个类,由许多企鹅组成。但是企鹅离开企鹅群可单独存在。
                                          
    (2)组合(Composition):关联的一种强的“拥有”关系。
      组合关系体现的是严格的部分和整体的关系,部分一旦脱离整体将不存在。举例:企鹅和翅膀。企鹅有两只翅膀,当企鹅消失的时候,这对翅膀也将会消失。
                                          

   二、依赖(Dependency)

    依赖关系体现的一种“使用”关系,即一个类的实现需要使用另一个类的方法或者属性。举例:企鹅和氧气。企鹅生存需要呼吸氧气,它们两者之间就是一个“使用”关系,也就是依赖。
                                 

   三、泛化(Generalization)

     泛化关系体现的是一种继承关系。子类泛化出父类,而父类特化出的子类拥有父类所有的属性和方法。举例:动物和企鹅。动物是一个父类,其属性是一双眼睛,方法是呼吸,那么企鹅继承与动物这个类,就会拥有一双眼睛和呼吸的行为。
                                

四、实现(Realization)

     实现关系体现的是类与接口的关系,类是接口所有特征和行为的实现。举例:定义一个行为是“呼吸”的接口,企鹅类实现这个“呼吸”的动作。
                      

关系对比

     关联VS聚合VS组合
     三者都体现类之间的“拥有”关系,聚合和组合,都是整体和部分的关系,只是两种关系中类的生命周期不同。聚合是“弱拥有”,组合是“强拥有”。

     关联VS依赖
     这两种关系的区别很明显,关联体现的是“拥有”,依赖体现的是“使用”。

     泛化VS实现
     泛化体现两个类之间的关系,实现是类与接口之间的关系。泛化强调的是类之间的继承,实现强调的是类对接口的实现。
     通过对比总结出类图之间4种关系的强弱:依赖<关联<聚合<组合<泛化=实现

总结

     UML图9种图中类图对软件实施有着指导性作用,在代码中创建类往往要参照着类图。那么,类图之间的关系则是代码中实现各种类之间调用的“Key”。有了这把钥匙,软件开发人员才能更加明了地编写代码
    
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值