(21)--6-2 UML类图-关联关系- 面向对象与UML.pdf

上传人:奉*** 文档编号:96640922 上传时间:2024-02-01 格式:PDF 页数:33 大小:710.07KB
返回 下载 相关 举报
(21)--6-2 UML类图-关联关系- 面向对象与UML.pdf_第1页
第1页 / 共33页
(21)--6-2 UML类图-关联关系- 面向对象与UML.pdf_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《(21)--6-2 UML类图-关联关系- 面向对象与UML.pdf》由会员分享,可在线阅读,更多相关《(21)--6-2 UML类图-关联关系- 面向对象与UML.pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 面向对象与面向对象与UML Object-Oriented and UML UML图图 -UML类图类图 Class Diagram 类之间的关系类之间的关系 (1)关联(关联(association)(2)泛化泛化(generalization)(3)聚合(聚合(aggregation)组合(组合(composition)(4)实现(实现(realization)(5)依赖依赖(dependency)计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 关联关系关联关系(association)当类之间在概念上有当类之间在概念上有实例连接实例连接关系时,这种类关系叫做关系时,这种类关系叫

2、做关联关联。关联关系表明了类的对象与另一个类的对象之间的链接。关联关系表明了类的对象与另一个类的对象之间的链接。例如:例如:(1)一个人为一家公司工作。)一个人为一家公司工作。(2)一个人可持有多家公司的股票。)一个人可持有多家公司的股票。(3)每个国家都有一个首都。)每个国家都有一个首都。(4)飞行员驾驶飞机,飞机被某一航空公司所拥有。)飞行员驾驶飞机,飞机被某一航空公司所拥有。关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)

3、自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)关联关系关联关系(association)(1)关联名(关联名(name)关联名关联名来描述关联的作用,清晰而简洁地说明对象间关系。使用来描述关联的作用,清晰而简洁地说明对象间关系。使用一个动词或动词短语来命名关联。一个动词或动词短语来命名关联。注意注意 关联名并不是必需的。关联名并不是必需的。如果

4、模型是无歧义的,关联名可不写。如果模型是无歧义的,关联名可不写。如果关联两端都明确了如果关联两端都明确了角色(关联端名),角色(关联端名),关联名关联名可以不写。可以不写。特例情况特例情况:当模型中在相同的类中有:当模型中在相同的类中有多重关联(相同类之间的多种不同关多重关联(相同类之间的多种不同关联关系),联关系),就必须用关联名或角色(关联端名)来消除歧义。就必须用关联名或角色(关联端名)来消除歧义。关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(m

5、ultiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)关联关系关联关系(association)(2)关联的导航性()关联的导航性(navigation)关联具有关联具有方向性(导航性)方向性(导航性),可以是单向的,也可以是双向的。,可以是单向的,也可以是双向的。关联用箭头来表示导航性,由源类指向目标类,表示源类的一个成员是目

6、标关联用箭头来表示导航性,由源类指向目标类,表示源类的一个成员是目标类的对象。类的对象。单向关联单向关联(uni-directional association):关联是单向的,从一个源类的对:关联是单向的,从一个源类的对象可以找到目标类的对象,反过来却不可。象可以找到目标类的对象,反过来却不可。idpasswordpasswordid 双向关联双向关联(bi-directional):关联是双向的,如果一个类和另一个类是双:关联是双向的,如果一个类和另一个类是双向关联,那么这两个类的对象都互相找到对方。向关联,那么这两个类的对象都互相找到对方。关联关系关联关系(association)关联关

7、系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)(3)角色)角色-关联端名(关联端名(role)当一个类和另一个类发生关联时,每个类通常在

8、关联中扮演着某种当一个类和另一个类发生关联时,每个类通常在关联中扮演着某种角色角色。角色写在关联的两端,所以也叫角色写在关联的两端,所以也叫关联端名关联端名。角色角色是关联中一个类对另一个类所表现出来的职责。是关联中一个类对另一个类所表现出来的职责。例如:例如:Person类和类和Company类都参与了关联类都参与了关联WorksFor。对于公司来说,。对于公司来说,人是雇员(人是雇员(employee),对于人来说,公司是雇主(),对于人来说,公司是雇主(employer)。)。关联关系关联关系(association)计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 当前类的角色名

9、出现当前类的角色名出现与之关联的类的属性与之关联的类的属性列表中作为关联类的列表中作为关联类的成员对象出现。成员对象出现。public class Company public Person employee;private class Person public Company employer;+employee+employerCompanyPerson+employee+employerCompanyPerson 角色是关联本身的属性,而不是类的组成部分,因为一个类可以在不同的角色是关联本身的属性,而不是类的组成部分,因为一个类可以在不同的关联中扮演不同的角色。关联中扮演不同的角色。由

10、于角色名称和关联名称都被用来描述关系的目的,所以角色名称可以代由于角色名称和关联名称都被用来描述关系的目的,所以角色名称可以代替关联名称,或者两者同时使用。替关联名称,或者两者同时使用。与关联名称不同,角色名可以生成代码。(使用与关联名称不同,角色名可以生成代码。(使用Rose工具可以直接生成工具可以直接生成代码)代码)注意注意 注意注意 角色(关联端名)也不是必须,但存在以下角色(关联端名)也不是必须,但存在以下 特例情况特例情况:(1)当模型中在相同的类中有)当模型中在相同的类中有多重关联(相同类之间的多种不同关联关多重关联(相同类之间的多种不同关联关系),系),就必须用关联名或角色(关联

11、端名)来消除歧义。就必须用关联名或角色(关联端名)来消除歧义。(2)对于自反关联或自身关联)对于自反关联或自身关联(同一类的两个对象之间的关联),(同一类的两个对象之间的关联),关联端关联端名名(角色角色)是必须的。是必须的。+child+parent Person 关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关

12、联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)(4)多重性(多重性(multiplicity)关联的多重性指某个类有多少个对象可以和另一个类的单个对象关联。关联的多重性指某个类有多少个对象可以和另一个类的单个对象关联。表示多重性的方法是在参与关联的类附近的关联线上注明多重性数值。表示多重性的方法是在参与关联的类附近的关联线上注明多重性数值。可以表达一个取值范围、特定值、无限定的范围或一组离散值。可以表达一个取值范围、特定值、无限定的范围或一组离散值。关联关系

13、关联关系(association)1.nown0.n1.n0.nCarPerson UML使用星号使用星号(*)来代表许多来代表许多(more)和多和多个个(many)。在一种语境中,两点代表在一种语境中,两点代表or(或或)关系,关系,例如“例如“1.*”代表一个或者多个。代表一个或者多个。在另一种语境中,在另一种语境中,or关系用逗号来表示,关系用逗号来表示,例如“例如“5,10”代表代表5或者或者10。Rose中的多重性用“中的多重性用“n”表示表示 类图 对象图对象图 类图和某一时刻对应的对象图类图和某一时刻对应的对象图 John:PersonMary:PersonTom:Person

14、Alice:PersonGE:CompanyIBM:CompanyAPPLE:Company计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 关联上的多重性可以对应到类属性代码上关联上的多重性可以对应到类属性代码上 多重性为多重性为1-对应属性中的对应属性中的单对象单对象 多重性为多重性为n-对应属性中的对应属性中的对象集合对象集合(对象数组)(对象数组)private class Person public Company employer;public class Company public Person employee;private class Person public C

15、ompany employer;public class Company public Person employee;/public vector employee;+employee+employerCompanyPerson1n+employer+employee1nPersonCompany 关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualif

16、ied association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)(5)自反关联)自反关联 一个类可能与它自己发生关联,这一个类可能与它自己发生关联,这样的关联被称为自身关联。(同一样的关联被称为自身关联。(同一个类的不同对象之间的关系)个类的不同对象之间的关系)当一个类的对象可以充当多种角色当一个类的对象可以充当多种角色时,自身关联就可能发生。时,自身关联就可能发生。CarOccupant(车上的人车上的人)既可能是既可能是一个司机一个司机(

17、driver)也可能是一个乘客也可能是一个乘客(passenger)。Drives0.4+passenger1+driver0.41CarOccupant10.n+employee+empolyer0.n1Person 关联关系关联关系(association)注意:注意:自反关联也具有导航性(方向性)自反关联也具有导航性(方向性)class Node public:int data;Node *prior;Node *next;class Node public:int data;Node *next;双向关联双向关联 单向关联单向关联 关联关系关联关系(association)关联关系关联

18、关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)(6)限定关联()限定关联(qualified association)带有带有限定符限定符(qualifier)的关联称为的关联称为限定

19、关联限定关联(受限关受限关联联)。限定符限定符常用于常用于一对多或多对多关联一对多或多对多关联。限定符的作用限定符的作用是在目标对象之间进行选择,将有效是在目标对象之间进行选择,将有效的多重性从“多”降为“一”。的多重性从“多”降为“一”。注意:引入限定关联后发生多重性的变化。(限定注意:引入限定关联后发生多重性的变化。(限定符减少了在关联目标端的多重性,通常由多变为符减少了在关联目标端的多重性,通常由多变为一)。一)。限定符限定符 关联关系关联关系(association)限定符这个概念在设计软件时非常有用,如果一个应用系统需要根据限定符这个概念在设计软件时非常有用,如果一个应用系统需要根据

20、关键字对一个数据集做查询操作,则经常会用到限定关联。关键字对一个数据集做查询操作,则经常会用到限定关联。引入限定符的一个目的就是把多重性从引入限定符的一个目的就是把多重性从n降到降到1或或0.1,这样如果做查询,这样如果做查询操作,则返回的对象至多是一个,而不会是一个对象集。如果查询操操作,则返回的对象至多是一个,而不会是一个对象集。如果查询操作的结果是单个对象,则这个查询操作的效率会较高。作的结果是单个对象,则这个查询操作的效率会较高。如果使用限定符后,限定符另一端的多重性仍为如果使用限定符后,限定符另一端的多重性仍为n,则引入这个限定符,则引入这个限定符的作用就不是很大,因为查询结果仍然还

21、是结果集。因此也可以根据的作用就不是很大,因为查询结果仍然还是结果集。因此也可以根据多重性来判断一个限定符的设计是否合理。多重性来判断一个限定符的设计是否合理。关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived

22、-association)关联类关联类(association class)计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕(7)关联上的约束)关联上的约束 关联上的关联上的多重性多重性是集合基数上的约束,限制了与给定对象相关的对象数量。是集合基数上的约束,限制了与给定对象相关的对象数量。关联端上“多”侧对象常常没有明确的顺序,可以看成集合。关联端上关联端上“多”侧对象常常没有明确的顺序,可以看成集合。关联端上“多”侧对象如果需要有明确顺序可以用“多”侧对象如果需要有明确顺序可以用ordered进行进行约束约束,建立一个有,建立一个有序的对象集合。序的对象集合。例如:例如:有序关联有序关

23、联 ordered10.nVisibleOn10.nWindowScreen有序关联有序关联 对关联端的多个对象对关联端的多个对象排序。排序。(排序常出现在多重(排序常出现在多重性为“多”时性为“多”时)ordered约束说明银行出纳员要按照顾客排队的次序为顾客服务约束说明银行出纳员要按照顾客排队的次序为顾客服务 关联关系关联关系(association)关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self

24、-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕(8)派生关联派生关联 派生关联(派生关联(derived association)是指可以从其他关联计算推演得)是指可以从其他关联计算推演得到的关联。到的关联。派生关联的名字前需要加一个斜杠“派生关联的名字前需要加一个斜杠“/”。在生成代码时,派生关联都不产生相应的代码

25、。在生成代码时,派生关联都不产生相应的代码。关联关系关联关系(association)关联关系关联关系(association)关联关系关联关系-相关内容相关内容 关联名关联名(name)导航性导航性(navigation)角色角色-关联端名关联端名(role)多重性多重性(multiplicity)自反关联自反关联(self-association)限定关联限定关联(qualified association)关联上的约束关联上的约束(constraint on association)派生关联派生关联(derived-association)关联类关联类(association class)(9)关联类)关联类 和类一样,关联本身也可以有自己的属性和操作。此时,这个关联实和类一样,关联本身也可以有自己的属性和操作。此时,这个关联实际上是个关联类。际上是个关联类。关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联类和对应的关联线连接起来,来标识关联的一些附加信息。类和对应的关联线连接起来,来标识关联的一些附加信息。关联类关联类 关联关系关联关系(association)本章小结本章小结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁