ORACLE8 UML 对象建模设计09.pdfVIP

  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文档。上传文档
查看更多
ORACLE8 UML 对象建模设计09

下载 第9章 组合和聚集:紧密的联系 到目前为止,我们仅仅讨论了对象之间相连接的联系。联系只说明一个对象与另外的对 象有某种关系,但是它并没有说明存在什么样的关系。有些时候在对象之间建立紧密联系是 有用的。我们可以说一个对象是另外一个对象的一部分,也可以说一个对象是由它与其他对 象的联系定义的。本章将讨论这些紧密的联系,称为组合或聚集关系。 9.1 紧密联系的建模和实现 从建模的观点来看,购货单和购货单明细之间的关系与项目和作为项目经理的雇员之间的 关系是非常不同的。在购货单/购货单明细这一例子中,没有相应购货单的购货单明细是毫无意 义的。购货单明细是父对象购货单的一部分。一次购买行为在一定程度上由购货单明细所定义。 购货单明细阐明购买了什么。缺少了购货单明细,购货单是没什么具体含义的。购货单明细不 能在不同购货单之间移动。 项目和项目经理之间的关系则不同,项目是一些独立的对象。对组织来说,项目与谁管 理哪个项目独立。项目并不由谁管理它而定义,但管理者可以容易地在项目之间更换。同样, 项目经理仅仅是作为一个项目的经理,担任某种角色的普通雇员。雇员也可以同时担任其他 角色,一个雇员甚至可以不与任何项目相关,或者同时管理多个项目。逻辑上看来,一些关 系与其他关系具有非常不同的含义。我们说购货单和购货单明细之间的关系是一种紧密联系。 从实现的观点看来,我们对紧密联系感兴趣是因为我们对它的不同项有不同的需求。通常, 我们是一起检索有紧密联系的对象,因此期望把它们以一种可以有效存取的方式存放。一旦 一个对象与某个对象是紧密联系的,我们可能就想保持该链接。我们可能还想同时创建、更 新和删除紧密联系的对象,因此希望把它们按照某种聚组的方式存放起来。 U M L 提供了两种紧密联系:组合和聚集。对 E R D 的建模者来说,组合和聚集是新关系, 需要比较详细的解释。甚至对很多采用面向对象的建模者来说,这二者的区别也是不清楚的, 因此请特别注意以下的讨论。 首先回顾一下在实体联系模型中可以表示的紧密联系。采用实体关系建模时,当需要指 明某个实体与其他实体紧密联系时,可以采用依赖关系,它通过关系上的一个 U I D 条来表示, 如图9 - 1所示。 图9-1 依赖关系 依赖关系在孩子对象(如购货单明细)依赖于父亲对象(如购货单)时采用。“依赖”意 味着孩子对象一旦脱离了父亲对象这一上下文环境就失去了意义。 依赖关系主要应用于两种情况。第一种情况通过购货单( Purchase Order )-购货单明细 (PO Detail )这个例子描述。当在一个文档(或者其他类似的东西)中有一个行项时,我们就 122计计第三部分 基 本 建 模 下载 用依赖关系表示,如图 9 - 1所示。经常使用依赖关系的第二种情况是为处理多对多关系产生的 相交实体。相交实体的实例在脱离其父对象的时候是没有意义的,所以采用依赖关系是适当的。 在不知道学生是谁,也不知道他(她)选择的课程是什么的时候,讨论某个学生的选课是毫无 意义的。该关系如图9 - 2所示。从这个例子可以看出,一个实体可以有多于一个的父实体。 依赖关系的典型实现方式是把主表(例如图 9 - 1 中的Purchase Order )的主码作为明细表(如PO Detail ) 主码的一部分。从逻辑上说,购货单明细是依赖于购 货单的。换句话说,购货单明细在脱离了它的主表购 货单之后是没有什么意义的,也即讨论一个不与任何 购货单相联系的购货单明细是没有意义的。 由于主码传统的不可更改特性,明细表不仅要 与主表相关,而且它还不能改变相关的主表。经验 表明,这对建模者来说是一个容易糊涂的概念。很 多建模者根本就不用依赖结构。采用依赖结构,通 常也只是让人联想到物理实现。识别出这两个实体 图9-2 采用E R D表示的相交实体 之间的较强的逻辑关系是不可能的。 然而,在U M L 中,这种关系更为复杂。在对象类之间存在两种不同的紧密联系类型: ■ 聚集。 ■ 组合(有时称为强聚集)。 下面将分别讨论这两个概念。 9.2 聚集 在U M L 的聚集关系中,一个类的对象集体地定义了聚集类

文档评论(0)

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

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

1亿VIP精品文档

相关文档