【UML】关系

前言

             在学习UML的过程中 ,我们都知道它的9种图十分重要,在此之前,我们需要对9种图涉及的四大关系有一个基本的了解。本篇文章,我将和大家一起走进——uml之四种关系。

导图概要


                                              

四种关系

关联(Association)

        关联是一种结构关系,指明一个事物的对象与另一个事物的对象间的关系,对象是类。比如说学生和课程。它主要体现的是整体与部分间的关系,以此分类,关联可以细分为聚合和组合关系。除此之外,它还包含最基本的关联,即普通关联。
          箭头指向:箭头+实线,箭头指向接口。例:
                                                             

聚合

        表示整体和部分的关系,部分可以脱离整体而存在,比如火车和引擎。
        箭头指向:空心菱形+实线,箭头指向父类。

组合

        表示整体和部分的关系,部分不可以脱离整体而存在,比如链表和节点。
        箭头指向:实心菱形+实线,菱形指向父类。例:
                                                

依赖(Dependency)

        表示一个事物规格说明的变化可能影响到使用它的另一个事物,一个类使用到另一个类。比如说自行车和打气筒,它们之间存在关系,但关系并不强,打气筒不属于某个特定的自行车,一个打气筒可以为很多自行车服务。
        箭头指向:箭头+虚线,箭头指向被依赖的那一方。例:
                                                             
        

泛化(Generalization)

            表示一种继承关系,是一般到特殊的关系,描述父类与子类的关系。可以形容为“is a kind of”关系。比如说人和学生,学生具备人的共性,还具备除此之外的学生的其他特性。
        箭头指向:三角箭头+实线,箭头指向父类。例:
                                                              

实现(Realization)

       表示类和接口的关系,一个类实现了一个接口。比如说人和走路,人要实现走路的接口。
       箭头指向:三角箭头+虚线,箭头指向接口。例:
       
                                                             

对比

                                                                              聚合——组合

        聚合关系中的两个对象,其关系一般可形容为A包含B,B是A的组成部分,B可以脱离A存在。比如说广义上的电脑和操作系统,一个操作系统不是只能用于一个电脑,但电脑要想正常使用却不能没有操作系统。这时我们可以看出,电脑和操作系统有较强的关系,但未必是一一对应关系。也就是说,我之前使用WIN7系统,现在同一台电脑我可以换成WIN10系统,电脑仍然可以正常使用。
        组合关系中的两个对象的关系比聚合关系更强,其关系一般可形容为A是B的一部分,A不能脱离B独立存在。比如说人和其四肢,四肢是人身体的一部分,脱离人就没有任何意义,它们是一一对应关系。组合关系也可以理解为“同生死,共进退”。
        综上所述,聚合和组合关系的区别主要在于:
(1)一个是否可以脱离另一个而存在,是否一一对应
(2)聚合可以形容为“has-a”,组合可以形容为“contains-a”

                                                                             关联——依赖

(1)关联关系中,双方关系一般是平等的,两个类之间的关系具有持久性
(2)依赖关系多为临时性的、偶然的关系。

           综上所述,关系强弱依次为:泛化=实现>组合>聚合>关联>依赖

小结

        每次总结都会发现自己学习过程的很多问题,学习就是这样一个螺旋式上升的过程,动手去做,就会发现其中有很多乐趣。
          
          初次学习UML,总结多有不足,欢迎大家指出~~~
       
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值