UML”关联关系“与“依赖关系”的区别


关联关系 根据事物之间的紧密程序,分为一般关联,聚合关联,和组合关联。

一般关联:

一般关联两者处于同一个级别,例如唐僧与徒弟都不是一般的存在

在 Java 或 c++ 中,关联关系是通过使用成员变量来实现的

可以是双向的

 class 徒弟 
   { }; 
   class 唐僧 
    { 
    protected: 
   list<徒弟> tdlist; 
    }; 
    

聚合关联:

聚合关联聚合是整体和部分之间的关系,例如:汽车和引擎,轮子

聚合关系也是通过成员变量来实现的

class 引擎 
   { 
   }; 
   class 轮胎 
   { 
   }; 
   class 汽车 
   { 
   protected: 
   引擎 engine; 
   轮胎 tyre[4]; 
   }; 
   

组合关联:

组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在, 例如:公司和部门,人和手,脚,部门是不能脱离公司而存在,人死了手、脚也挂了

1 class 肢 
   { 
   }; 
   class 人 
   { 
   protected: 
   肢 limb[4]; 
   }; 

如何记忆:一般关联较弱,用一个箭头表示,聚合关联较强,所以用两个箭头表示,组合关系就更强了,所以用最强的在两个箭头中填充黑色神秘物质。


依赖关系:依赖关系比关联系弱一点, 分为三种,一般依赖,实现依赖,继承依赖

一般依赖:

依赖总是单向的

依赖关系在 Java 或 C++ 语言中体现为局部变量、方法的参数或者对静态方法的调用

 public class Person
   { 
   public void buy(Car car) 
   { ... } 
   } 


实现依赖:

在类图中就是接口和实现的关系

这个没什么好说的,在一般依赖箭头上加条线就行了


继承依赖
也就是继承关系

在实现依赖的基础上,把虚线变成实线就OK了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值