体系结构第3讲.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 第三章 关系 本章学习类之间如何发生连接,具体有下列内容: ● 关联。 ● 多重性。 ● 限定关联。 ● 自身关联。 ● 继承和泛化。 ● 依赖。 在上一章所完成的模型中,只有一些代表了篮球运动词汇的类。还缺少类之间的连接方式。回顾已经建立的初步模型,就会发现图中并没有说明队员和篮球之间有什么关系,队员是如何组成球队的,或者一场比赛是如何进行的。 3.1 关联 当类之间在概念上有连接关系时,这种关系叫做关联(association)。篮球比赛的初步模型中提供了这样的例子。让我们来研究其中的一个关联——队员和 球队之间的关联。可以用一个短语“队员为篮球队效力(plays on)”来刻划这个关联。关联的可视化表示方法是用一条线连接两个类,并把关联的名字(例如“plays on”)放在这个连接线之上。表示出关联的方向是很有用的,关联的方向用一个实心三角形箭头来指明。下图说明如何可视化表示队员和球队之间的Plays on关联。 当一个类和另一个类发生关联时,每个类通常在关联中部扮演着某种角色。可以在图中靠近每个类的地方的关联线上标明每个类的角色。在队员和球队的关联中,如果球队是职业篮球队,那么它就是队员的雇主(Employer),队员就是球队的雇员(Employee)。下图说明了如何表示出这些角色。 关联还可以从另—个方向发生:篮球队雇佣(Employs)队员。可以把这两个方向上的关联表示在一个图中,用实心三角形箭头指明各自关联的方向,如下图所示。 好几个类可以连接同一个类。如果考虑Guard、Forward、Center类和Team类之间的关联,将会得到如下所示的关联图。 3.1.1 关联上的约束 有时,两个类之间的一个关联有一个规则。可以通过关联线附近加注一个约束来说明这个规则。例如,—个BankTeller(银行出纳员)为一个Customer(顾客)服务(Serves),但是服务的顺序要按照顾客排队的次序进行。在模型中可以通过在Customer类附近加上—个花括号括起来的“ordered(有序)”来说明这个规则(也就是指明约束),如下图所示。 另—种类型的约束是or(或)关系,通过在两条关联线之间连一条虚线,虚线之上标注“{or}”来表示这种约束。下图是高中生(High school student)选(Choose)专业(Academic)课,或者选商务(Commercial)课时的模型。 3.1.2 关联类 和类一样,关联也可以有自己的属性和操作。此时,这个关联实际上是个关联类。关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联类和对应的关联线连接起来。关联类也可以与其他类关联。下图是player类和Team类之间的Plays on关联对应的关联类:Contract(契约)关联类。它又同时和GeneralManager(总经理)类发生关联。 3.1.3 链 正如对象是类的实例一样,关联也有自己的实例。如果我们想象要一个特定的队员效力一个特定的球队,那么两者之间的Plays 0n关系就叫做一个链(link),可以用两个对象之间的连线来表示它。和对 象的名字要加下划线一样,链的名字也要加下划线,如下图所示。 3.2 多重性 到目前为止,在Player类和Team类之间所建立的关联似乎是一对一关系。然而常识告诉我们这并不一定正确。一支篮球队有5名队员(不包括替补队员)。因此Has(拥有)关联必须考虑到这一点。在另一个方向—上, —个队员只能为一支球队效力,Plays on关联也必须考虑这—点。 上面说的就是多重性的例子:某个类有多少个对象可以和另一个类的单个对象关联。表示多重性的方法是在参与关联的类附近的关联线上注名多重性数值。 这个例子所举的多重性并不是唯一可能的类型。实际上存在各种可能的多重性。两个类之间可以是一对一、 —对多、—对—或多、—对零或一、一对有限间隔。 UML使用星号(*)来代表许多(more)和多个(many)。在一种语境中,两点代表or(或)关系,例如“1..*”代表一个或者多个。在另一种语境中,or关系用逗号来表示,例如“5,10”代表5或者10。下图显示了可能的各种多重性的表示方法。 3.3 限定关联 当关联的多重性是一对多时,就产生了一个特殊问题:查找问题。当个类的对象必须要选择规则中另—个类的特点对象来满足关联中的角色时,第一个类必须要依赖一个具体的属性值来找到正确的对象。这个属性值通常是一个标识符号,例如一个ID号。例如,当你预订了

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档