诗解UML关系

 

UML关系


泛实组聚关依赖,六种关系强到弱。(六种关系及强弱)
泛化实现同一类,组合聚合关联。(分类)
泛化继承三角实,实现接口三角虚。(泛化、实现的含义和画法)
整体部分有两种,聚合可离组合否。(组合、聚合的含义)
组合实菱聚合空,箭指部分实线凑。(如何画组合、聚合)
关联拥有可双向,实线箭指被拥有。(关联的含义画法)
依赖使用弱关联,被用之前虚箭头。(依赖的含义画法)

 

[简化版]

泛实组聚关依赖,六种关系强到弱。
泛化继承三角实,实现接口三角虚。 (泛化、实现的含义和画法)
组合实菱聚合空,箭指部分实线凑。 (组合、聚合都是整体与部分的关系)
关联实箭被拥有,依赖虚箭被使用。 (关联、依赖的含义和画法)

 

【注】

1、“泛实组聚关依赖”指六种UML关系:泛化、实现、组合、聚合、关联和依赖,这些关系是按照从强到弱的顺序排列的。(因为类图是矩形,为了好画和好看,指向类图的图形是各种尖形,如三角形、菱形、箭头,而没有选方形)

 

2、泛化和实现可归为一类,组合、聚合和关联可归为另一类,依赖则单独归为一类。

 

3、泛化和实现都描述的是“抽象”和“具体”的关系。泛化即继承关系,实现指的是实现接口。在Java里面,抽象类可以实现接口,普通类可以继承抽象类。普通类比抽线类更具体、抽象类比接口更具体,所以描述普通类和抽线类的泛化关系要强于描述抽线类和接口类的实现关系。

 

4、泛化是三角形加实线,实现是三角形加虚线(因为接口比较虚,所以用虚线),三角形都指向父类(更抽象的类)。

 

5、组合、聚合和关联,这一大类都描述的是拥有关系。区别是,组合和聚合描述的是拥有里面的“整体”和“部分”的关系,非整体部分的拥有就归于关联了。显然,组合和聚合表达的拥有程度要强于关联所表达的拥有程度。而组合和聚合的区别则在于,组合的整体与部分之间是不可分离的,而聚合的部分可从整体分离而存在。这样组合表达的关系又是强于聚合的了。

 

6、组合是实心的菱形加上一根带箭头的实线来表示的,并且箭头是指向部分的,所以叫“箭指部分实线凑”;聚合也是“箭指部分实线凑”,但和组合不同的是连接“整体”的那一边是一个空的菱形。

 

7、关联表达的非“整体”和“部分”关系的拥有关系,可以是双向的,即互相拥有;与组合和聚合一样,关联也有一根带箭头的实线,它射向的是被拥有的那一方。

 

8、最后的也是最弱的关系就是依赖了,它描述的是使用关系,使用权当然比不上所有权,所以依赖要弱于关联;依赖是一根带箭头的虚线,它射向的当然也是弱的那一方——被使用者,与关联类似。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值