UML中的几种关系——依赖、关联、聚合、组合、泛化、实现

 

 

 

(1)依赖关系 Dependency

 

……use a……

A使用类B,且这种使用关系是很弱的,具有偶然性、临时性,但类B若发生变化会影响到类A

 

【表示方法】带箭头虚线,箭头指向被依赖对象

【具体表现】:局部变量,方法的参数,以及对静态方法的调用

 

【例子】

 

如,植物进行光合作用从而不断生长。而保证植物有生命能够进行光合作用的条件,就是要有空气、水等等。植物依赖于空气和水。他们之为依赖关系。

 

 

 

 

 

【代码层表现】类B作为类A的参数被类A在某个方法中使用。

 

 

 

Air类和Water类作为Plants类中Photosythesis方法的参数。

 

 

 

Water类作为Plants类中Photosythesis方法的返类型

 

 

====================================================================================================

 

 

2)关联关系 Association

……has a……

对象A与对象B之间存在特定的对应关系,

对象A长期的持有对象B的引用。

 

体现的是两个类、或者与接口之间语义级别的一种强依赖关系。

 

【表示方法】:带箭头的实线,箭头指向被引用的对象

 

【具体表现】被关联的类B以类属性的形式出现在关联类A中(并非所有的属性都是关联,像int/bool这类的属性就不宜表示为关联),也可能是关联类A引用了一个类型为被关联类B的全局变量

 

 

【例子】

如,"种子"需要知道"气温"是否适合,才能够发芽

 

 

【代码层表现】

 

 

在种子Seed对象中,引用到气温Temperature对象

 

=========================================================================

 

聚合关系 Aggregation

 

……owns  a……

聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分——《设计模式》第2

 

【表示方法】空心菱形+实线箭头(加实线箭头为单向聚合)

 

【例子】大雁与雁群,每只大雁属于一个雁群,一个雁群可以有多只大雁,它们之间满足聚合关系。

 

 

 

 ==========================================================================

 

 

组合(合成)关系 Composition

 

……Is  a part of ……

 

组合是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体生命周期一样。

 

【表示方法】实心菱形+实线箭头

连线两端的数字“1”和“2”成为基数,用来表明这一端的类可以有几个实例。

 

【例子】鸟和其翅膀,就是聚合(合成)关系,它们是整体和部分的关系,鸟和翅膀的生命周期相同。

 

===============================================================================================

3)泛化关系 Generalization

Is a kind of

 

表示对象与对象之间的继承关系。具体形式为类于类之间的继承关系、接口与接口之间的继承关系。

 

【表示方法】空心三角箭头+实线

【主要用途】

1、实现多态

2、多重继承

【例子】

 

 

 

 

 

============================================================================================

4)实现关系 Implementation

用来规定接口和实现接口的类或者构件结构的关系,接口是操作的集合,而这些操作就用于规定类或者构件的一种服务。一个接口可以被多个类或组件实现,一个类或组件也可有多个接口。

 

【表示方法】空心三角箭头+虚线

 

【使用情况】

1、在接口和实现该接口的类间

2、在用例以及实现该用例的协作间

 

【例子】

 

 

 

 

省略表示法,将接口表示为一个小圆圈并和实现它的类用一条线相连

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值