前言
上章介绍了UML九种图及之间的关系,本章继续介绍UML的四种关系,同样是画图必不可少的基础。
正文
谈到UML的四种关系,我想先说一下UML的结构,因为这四种关系是UML的结构中的一部分,有了整体的把控,然后再去了解整体中各个部分的相互作用,这样理解起来比较方便一点。
UML的结构
基本构造块、关系、图。基本构造块是最基本的元素,如果把UML比作成汽车的话,那么基本构造块就相当于汽车的各个零件,而关系是把各个零件联系起来的桥梁,其实只有汽车动起来,我们才能更好的理解关系在里面起到的作用。
四种关系
一、关联(Association)
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联用横线表示。
关联包含聚合和组合关系
聚合
关联的一种,聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主机、鼠标就是聚和关系。
组合
关联的一种,对于具有组合的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。相当于人失去了四肢,就无法进行工作了。
二、依赖(Dependency)
当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 具体表现依赖关系表现在局部变量,方法的参数,以及对静态方法的调用。两个对象的关系用虚线和箭头来表示。
比如现在有两个对象,一个是人,一个是手机,其中手机有一个打电话的方法。那么人想打电话就得依赖手机具有打电话的方法来实现。
三、泛化(Generalization)
其表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。用空心三角也实线表示。
四、实现(Realization)
类与接口之间的关系。用空心三角和虚线来表示
四种关系的强弱程度
在画图时,我们尽量使用强耦合的关系,这与模块中编写代码正好相反,以上四种关系的强弱顺序是:组合>聚合>关联>依赖。再找类与类之间的关系时,能用组合就不用聚合,能用聚合就不用关联,能用关联就不用依赖。因为只有这样,我们才能更好的可视化建模和将代码的实现一一准确的与图对应起来。
小结
从网上搜了一下,很多很棒的内容,文章中很多也是在上面学习到的,了解很多,打好基础。