欢迎来到天天文库
浏览记录
ID:37619518
大小:672.06 KB
页数:10页
时间:2019-05-26
《第4章 关 系》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一部分基础知识第4章关系第4章关系本章学习类之间如何发生连接关系。具体有下列内容:关联多重性限定关联自身关联继承和泛化依赖上一章所建立的模型,只是有一些代表了领域词汇的类。尽管这幅图是进一步研究篮球比赛的基础,但很显然图中似乎缺少了什么。“缺少的东西”是类之间的连接方式。如果你回顾已经建立的初步模型(参考图3.15),就会发现图中并没有说明队员和篮球之间有什么关系,队员是如何组成球队的,或者一场比赛是如何进行的。本章中,将建立这些类之间的连接并对前一章所建立的模型进行补充。4.1关联当类之间在概念上有连接关系时,类之间的连接叫做关联(association)
2、。篮球比赛的初步模型中可以找到这样的例子。让我们来看看其中的一个关联——队员和球队之间的关联。可以用一个短语“队员为篮球队效力(Playson)”来说明这个关联。关联的可视化表示方法是在有关联关系的两个类之间画一条连接线,并把关联的名字(例如“Playson”)放在这个连接线之上。表示出关联的方向是很有用的,关联的方向用一个实心三角形箭头来指明。图4.1说明如何可视化表示队员和球队之间的PlaysOn关联。图4.1队员和球队之间的关联当一个类和另一个类发生关联时,每个类通常在关联中都扮演着某种角色。可以在图中靠近每个类的地方的关联线上标明每个类的角色。在队员和球队的关联中
3、,如果球队是职业篮球队,那么它就是队员的雇主(employer),队员就是球队的雇员(emplyee)。图42说明了如何表示出这些角色。图4.2参与关联的每个类通常都扮演着某种角色,可以在图中标明每个类所扮演的角色。关联还可以从另一个方向发生:篮球队雇佣(Employs)队员。可以把这两个方向上的关联表示在一个图中,用实心三角形箭头指明各自的方向,如图4.3所示意。第一部分基础知识第4章关系图4.3两个类之间的不同关联可以表示在一幅图中。关联远不只一个类连接另一个类那么简单。好几个类可以连接同一个类。如果考虑Ggurad、Forward、Center类和Team类之间的关
4、联,将会得到图4.4所示的关联图。图4.4多个类可以和同一个类关联。4.1.1关联上的约束有时,两个类之间的一个关联必须满足某个规则的约束。可以在关联线附近加注一个约束来说明这个规则。例如,一个BankTeller(银行出纳员)为一个Customer(顾客)服务(serve),但是服务的顺序要按照顾客排队的次序进行。在模型中可以通过在Customer类附近加上一个大括号括起来的“ordered(有序)”来说明这个规则(也就是指明约束),如图4.5所示。图4.5可以对关联施加约束。图中,Serves关联上的{ordered}约束说明银行出纳员要按照顾客排队的次序为顾客服务。
5、另一种类型的约束是Or(或)关系,通过在两个关联线之间连一条虚线,虚线之上标注“{or}”来表示这种约束。图4.6说明高中生(highschoolstudent)选课时或者选(choose)专业(academic)课,或者选商务(commercial)课。图4.6两个关联之间的{Or}约束。第一部分基础知识第4章关系4.1.2关联类和类一样,关联也可以有自己的属性和操作。此时,这个关联实际上是个关联类(associationclass)。关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联类和对应的关联线连接起来。关联类也可以与其它类关联。图4.7是Player类
6、和Team类之间的PlaysOn关联对应的关联类:Contract(契约)类。它又同时和GeneralManager(总经理)类发生关联。图4.7关联类对关联的属性和操作建模。它与所对应的关联线之间通过虚线连接起来,并且关联类还可以和其它的类关联。4.1.3链正如对象是类的实例一样,关联也有自己的实例。如果我们想象一个特定的队员效力一个特定的球队,那么两者之间的PlaysOn关系就叫做一个链(link),可以用两个对象之间的连线来表示它。和对象的名字要加下划线一样,链的名字也要加下划线,如图4.8所示。图4.8链是关联的实例。链连接的是对象而不是类。和对象名要加下划线一样
7、,链名也要加下划线。4.2多重性到目前为止,在Player类和Team类之间所建立的关联似乎是一对一(one-to-one)关系。然而常识告诉我们这并不一定正确。一支篮球队有5名队员(不包括替补队员)。因此Has(拥有)关联必须考虑到这一点。在另一个方向上,一个队员只能为一支球队效力,PlaysOn关联也必须考虑这一点。上面说的就是多重性(multiplicity)的例子——某个类有多少个对象可以和另一个类的单个对象关联。表示多重性的方法是在参与关联的类附近的关联线上注名多重性数值。第一部分基础知识第4章关系图4.9多重性说明
此文档下载收益归作者所有