UML之六种类图关系

一、概述

对于大型项目,一般需要先利用UML绘制类图关系。学习设计模式,也需要清楚的知道类与类之间的关系。
类与类之间的关系分为三大类:泛化,实现,关联(组合、聚合、普通关联、依赖)

二、详细

1、泛化

泛化关系发生在父子类之间。子类继承父类的所有非私有属性和方法,并根据自有的特性进行扩展,这就属于泛化,使用实线空心箭头表示,如下图所示,
泛化关系

2、实现

实现关系发生在父子类之间。父类存在虚函数或纯虚函数,子类重新实现了虚函数,这就属于实现,使用虚线空心箭头表示。如下图所示,CDot继承CShape,并实现了CShape的接口函数Draw()。
实现关系

3、关联

关联分为四种:组合,聚合,普通关联,依赖。从关联的紧密程度来说,四种关联之间的强弱关系为:组合>聚合>普通关联>依赖。

3.1、组合

两个对象如果是组合关系,那么说明一个对象包含其中一个对象,且不可分割。比如,人拥有大脑,鸟拥有翅膀,大脑不能独立人而存在,翅膀不能独立鸟而存在,这都是不可分割的对象。如下图所示,
组合关系
特别说明,关联关系中,可以标明对象的数量关系,就像人和大脑是一对一的关系。

3.2、聚合

聚合是指,一个对象拥有一个对象,但是是可以分割的,强调的是整体与部分的关系。比如,雁群中的一只雁,雁群拥有许多雁,雁可以飞离雁群而存在。如下图所示,
在这里插入图片描述

3.3、普通关联

普通关联的两个对象是一种平等关系,分为单向关联和双向关联。可以使用实线带双向箭头或实线表示。例如,老师知道自己的所有学生信息,学生也知道自己所有老师的信息,因此学生和老师属于双向关联。如下图所示,
在这里插入图片描述

3.4、依赖

依赖一般只能是单向依赖,指一个对象使用另外一个对象。比如人可以使用刀,但不能说刀使用人,因此人对象就是依赖刀对象。
在这里插入图片描述

三、总结

对于泛化和实现关系,很好区分,但是关联关系则难以区分。一般为了简单,所有的关联关系可以采用实线箭头表示,不显示他们的强弱关系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值