【UML】概念、关系、图(二)

     在上一篇博客中,主要写了一下UML是什么,UML的作用,以及UML中包含的关系和图形。但是没有具体介绍那些关系的用法和图的用法。这篇博客就是要理清UML的关系!


     关系

     关联

     是一种类与类或类与接口之间的,具有结构性的关系。由上图可知,关联又可分为三种:一般关联、聚合以及组合。

     聚合:它体现了整体与部分的思想。就好比书柜与书一样,没有人规定书柜里一定要放书,也没有人规定书一定要放在书柜里。它们之间不是必须的关系,但是当书放在书柜中时,它们就由两个不同的部分形成了一个整体!这充分体现了整体与部分的思想,而且使这个整体具有结构性。。

     组合:它同样体现了整体与部分的思想,但与聚合相比,它的整体与部分是不可分割的。可以这样理解,书是由一页页的纸组成的,如果没有纸,就成不了书了(电子书除外,但无论什么书,都是又一个个组成的),可以看出,书和纸不密不可分的,它们之间是必须的关系。。

     一般关联VS聚合、组合

     相比聚合的不同是,一般关联是一个类或两个类之间的结构性关系。

     相比组合的不同是,一般关联是类不是密不可分的。

     综上所述,一般关联是一个类、或两个不是密不可分的类之间的、结构性关系。

     依赖

     是一种使用关系,具有临时性,类A依赖类B时,当类B发生变化,类A也随之发生改变。我们可以这样理解,在大四的时候,咱们要写论文,需要收集资料来写文献综述,于是我们要看很多本书,查找对自己有用的文字。从上一句话中我们可以分析得出:1、文献综述需要在书中收集资料 2、咱们“使用”了书,用来获取有用的文字 3、当使用的书不同时,咱们文献综述的内容是不同的。

     从这三个分析结果看,它符合依赖的定义,文献综述使用了书,而且当书不同时,文献综述也会随之改变。

     泛化

     我们可以理解为继承,就相当于面向对象技术中的派生类对基类的继承关系。咱们可以定义一个基类,叫“书”,我们可以将“书”实例化成漫画书、科普书、文学书等等,不管是什么类型的书,它们都具有“书”的基本特征。

     实现

     描述的是一个类实现另一个类或接口的功能。这句话听起来比较拧巴且不易理解,但视频上是这样说的,我感觉不直白且不好理解。用我的话说,就相当于C++中的引用,原本一个类或接口不能实现关机的功能,但另一个类中有这个功能,引用了它的,就实现了关机的功能。

     实现VS泛化

     无论是实现,还是继承,都可以抽象为C++中的引用,但是它们之间到底有什么不同,需要我们仔细推敲一番!

     我的理解是,实现是继承的特殊化。实现中的接口是一系列操作的集合,它只有识别方法的能力,但功能代码都是来自其他类的。继承就不一样了,子类继承了父类,但子类中还可以有其他功能,接口中不能有其他功能。


     小结

     通过对上述关系的描述,我们可以很清晰的感受到每个关系的不同点,让我明白仔细总结和对比的重要性,当知识突出它的特点时,我们才能够印象深刻。对UML的总结还在继续,下一篇文章《【UML】概念、关系、图(三)》敬请期待。。

     

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值