用UML表示类的关系

UML将类的关系分为以下5种:
1、关联:类A与类B的实例之间存在特定的对应关系
2、依赖:类A访问类B提供的服务
3、聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成
3、泛化:类A继承类B
4、实现:类A实现了类B的接口

下面对上述各种关系具体分析一下:

[size=large]一、关联(association)[/size]
关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。
按照类之间的数量对比,关联又可以分为:一对一关联、一对多关联、多对多关联。这三种关联还以各分为单向关联和双向关联,以一对多关系为例,画图如下:
[img]http://dl.iteye.com/upload/attachment/157727/39fd6122-444e-35ea-86d1-c22d4abef89a.gif[/img]

[size=large]二、依赖(dependency)[/size]
是指类之间的调用关系,在UML中用带虚线的箭头表示
如果类A访问类B的属性或方法,或者类A负责实例化类B,可以说类A依赖类B.和关联关系不同,无须在类A定义类B类型的属性。如下图:
[img]http://dl.iteye.com/upload/attachment/157737/1cd05ec9-6214-3a1f-8f51-41f1d5cd57f4.gif[/img]

[size=large]三、聚集(aggregation)[/size]
是指整体与部分之间的关系,在UML中用带实线的菱形箭头表示
[img]http://dl.iteye.com/upload/attachment/157847/236edb5b-5299-3b1f-833d-c7d1d2b1904c.gif[/img]

注:
当Computer由CPU和Monitor聚集而成时,在Comuter类中应该包含CPU和Monitor类型的成员变量:

public class Computer{
private CPU cpu;
private Monitor monitor;
//....
}


另外,聚集还分为普通聚集关系(子系统允许被拆卸和替换),如上面的例子。强聚集关系(子系统不允许被拆卸和替换),这种关系在类框图中用带实线的实心菱形箭头表示。

[size=large]四、泛化(generalization)[/size]
是指类这间的继承关系,在UML中用带实线的三角形箭头表示。如下图:
[img]http://dl.iteye.com/upload/attachment/157780/57470dcc-42e9-3494-a1f0-430f5a21df4d.gif[/img]


[size=large]五、实现(realization)[/size]
是指类与接口之间的关系,在UML中用带虚线的三角形箭头表示,这里的接口是指接口类型,接口名字用斜体字表示,接口中的方法都是抽象方法,也采用斜体字表示。
[img]http://dl.iteye.com/upload/attachment/157845/833ec932-ae94-3ee9-aef5-0a5f3d130c5f.gif[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值