您的位置:首页 > 其它

EA&UML日拱一卒-关联(基础篇)

2017-04-10 18:43 465 查看
在定义了类属性,类操作等限制在单个类内部的内容之后,接着说明类之间的关系,今天是关联的基础篇。

什么是关联

关联是两个或多个特定类之间的关系,它描述了这些类的实例之间的连接。在问题陈述中,关联经常以动词(或动宾)形式出现。

比如学生和老师之间的关联,如果以学生为起点,老师为终点,那么这种关联就可以称为获取知识(AquireKnowledge)。如果以老师为起点,学生为终点,那么这种关联就教授知识(TeachKnowledge)。有教就有学,一体两面。

关联本质上都是双向的。但是在读的时候要按从起点到终点的方向来读。

下面是AquireKnowledge在UML中的表现方式。



关联就是连接Student类和Teacher类之间的那条线,上面带有关联名AquireKnowledge。下面介绍关联的表示/设定方法。

在增加关联关系之前,首先打开类图并增加两个类:Student和Teacher。

接下来点击工具栏中的Associate图标(如下图),然后在Student类上按下鼠标并拖动鼠标到到Teacher类后释放。这里的方向是有意义的,拖动开始的类就是关联的起点。



在生成的直线上双击鼠标以打开如下的AssociateProperty对话框。



在名称栏中输入AquireKnowledge,同时确认右边的属性列表,可以看到Source项目的内容为Student,Target项目的内容为Teacher。

接下来选择Role(s)分类,在SOURE和TARGET两边的列表中都可以看到Multiplicity项目,这个项目叫多重都,后面会讲到,先都输入选择【*】。

这样就可以得到本文一开始的那张图了。

多重性

多重性指定了一个类与其关联类的单个实例可能相关的实例数目。也不知道为什么这种定义总是那么难以理解。还是结合上面的例子来说明吧。先假设这里的一个类是Student类,那么它的多重性就指定了一个Teacher类的实例可能与多少个Student类的实例相关。

多重性的标准格式为:minimum..maxmun,minimum和maxmun都是整数,maxmum也可以是“*”,表示无限多。例如:[1..*]就表示1个到无限多个。

区间还可以一个单独的整数来表示。

先看下面的例子。



有两个多重度的设定值。首先Student类侧的1,表示的是一个Book类的实例只能和1个Student类的实例相关。Book类则为[0..*]表示一个Student类的实例可以和0到无限多个Book类的实例相关。

关联端名

我们也可以给关联的两端指定名称,例如在上面的Has关联中,可以指定Student端的名称为owner,指定Book端的名称为belongings。

关联端名的设定也是通过下面的AssociationProperty对话框来进行的。



设定关联端名以后,类图就变成下面这样。



关联端名一般以名词出现,大多数场合关联端的命名会比关联的命名更容易一些。一旦指定了关联端名,就可以省略关联名。

如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!

阅读更多新文章,请扫描下面二维码,关注公众号【面向对象思考】

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UML EA 关联