面向对象-关联ppt.ppt_第1页
面向对象-关联ppt.ppt_第2页
面向对象-关联ppt.ppt_第3页
面向对象-关联ppt.ppt_第4页
面向对象-关联ppt.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

组员 任万春朱雪刚 学习目标 了解关联的相关概念 熟悉关联的表示法和实现技术 掌握运用简单的关联概念解决复杂的关联问题 重点掌握如何建立关联 关联 主要内容 1 关联的相关概念 2 关联的表示方法和实现技术 3 运用简单的关联概念解决复杂关联问题 4 如何建立关联 关联是对象实例之间的一种关系 它定义在类的抽象层次上的定义 即关联是两个或者多个类上的一个关系 其中的元素提供了被开发系统的应用领域的一组有意义的信息 最常见的情况是两个类之间的关联 即二元关联 多个类之间的关联叫做n元关联 二元关联是n元关联的一种特殊情况 1 关联的相关概念 在概念上 他们都是对象实例间的一种静态关系 都是在类的抽象层次上定义的 并且最终都可以通过对象的属性来体现 但它们差别是 聚合关系所涉及的两类对象在现实世界里含有明显的has a语义 能够区分哪个是整体 哪个是部分 关联所涉及的对象之间没有这种语义 即分不出整体和部分 在模型表示方面 对这两种关系都是用一种连接符号来连接相关的类 但是符号不同 其多重性的表示完全一致 都是 一对一 一对多 多对多 三种情况 在实现上 关联和松散 灵活的聚合关系实现方法相同 但它决不能使用紧密 固定的聚合关系所用的嵌套对象来实现 由于上述相似性和差别 在UML定义中把聚合作为关联的一种特殊情况 1 1 关联与聚合 二元关联的基本表示法 如下图三元关联及n元关联的表示法 如下图 2 1 关联的表示法 关联的多重性可以分为 一对一 一对多 多对多 三种情况 一对一的关联是指 关联两端的数量约书都是1 一对多的关联是指 关联两端的数量约束有一个是1 另一个是 多对多的关联是指 关联两端的数量约束都是 2 1 关联的表示法 一对一和一对多关联的实现在编程语言中最常见的实现方法是 在程序中用两个类分别实现关联两端的类 以数量约束为1的类的对象实例为目标 在关联另一端的类中设置一个指向该目标的指针或者对象标识 在关系数据库的实现方法是 用两个数据库表分别实现关联两端的类 以数量约束为1的类所对应的表的元组为目标 在关联另一端的类所对应的表中设置一个指向给目标的外键 2 2 二元关联的实现 多对多关联的实现在编程语言中最常见的实现方法是 在程序中用两个类分别实现关联两端的类 同时用另一个类来实现他们之间的关联 实现关联的类含有两个属性 分别是指向两端的类的对象实例的指针或者对象标识 在关系数据库的实现方法是 用两个数据库表分别实现关联两端的类 同时用另一个数据库表来实现他们之间的关联 实现关联的数据库表含有两个属性 他们分别是指向两端的表的元组的外键 2 2 二元关联的实现 多对多关联的实现转换方法是 切断原先的两个类之间的多对多关联 插入一个类代替他 并建立新增加的类和原先的两个类之间的一对多关联 2 2 二元关联的实现 简单的关联是指 在关联上不带有通过属性和操作的方式来表达的附加信息 复杂的关联有很多种 主要有带有属性和操作的关联 三元关联和n元关联 一个类在关联中多次出现 关联端点的复杂情况 3 运用简单的关联概念解决复杂的关联 带有属性和操作的关联关联 在某些应用问题中 不仅需要用关联来表示两个类之间存在着一个对用户的业务有意义的关系 而且可能要求通过这个关联给出更多的有用的信息 为了解决这个问题 OMT方法对基本关联的概念进行了扩充 提出了关联类的概念 关联类既是类也是关联 它有着关联和类的特性 它将多个类连接起来同时又具有属性和操作 3 1 带有属性和操作的关联 运用关联类的概念对上面的三个例子建模 其结果如下 3 1 带有属性和操作的关联 运用对象的概念来表示 在模型中增加相应的类来描述这些新发现的对象 并重新考虑它和原先两个类之间的关联 3 1 带有属性和操作的关联 上述方法依据的原理是 对象不仅可用于表示有形的事物也可用于表示无形的事物 上述方法的描述 在应用中 当你认为一个关联上还需要增加一些通过属性或者操作来描述的信息时 那么就进一步运用面向对象的观点 分析这些信息究竟描述了一种什么事物 把这种事物抽象为对象 用类表示 并分别建立新增加的类和原先的类之间的简单的关联 如果新定义的关联仍然带有某些复杂的信息 则进一步的运用上述方法 直到所有的关联都成为不带任何附加信息的简单关联为止 3 1 带有属性和操作的关联 上述方法可以作为一种通用的解决方法 把用关联类的概念所表达的复杂关联转化为简单的关联 3 1 带有属性和操作的关联 2020 3 16 17 可编辑 从理论上说 在任意数量的类之间都可以定义一个关联 在实践中 多个类之间的关联也会遇到 但是 创造太多的表示符号将增加模型的复杂性 这里要给出一种方法 将n元关联转化为二元关联 3 2 三元关联和n元关联 实现结果的一致性表明 完全可以在模型中采用简单的面向对象技术 类和二元关联来表示n元关联 这样做的好处是 建模概念更为简单 表示法不需要那么多花样 是模型与实现结果产生更清晰的对应 此外 运用简单的概念建模可以避免目前UML提供的n元关联表示法的以下几个潜在的缺陷 类的数量问题关联类的问题多重性问题 3 2 三元关联和n元关联 多重性问题 3 2 三元关联和n元关联 在一个关联中同一个类多次出现 在理论上 定义多个集合之间的关系并不排除其中的某些集合是相同的 在实际运用中也会遇到这种情况 3 3 一个类在关联中多次出现 UML通过对关联端点增加各种各样的修饰以求对关联的各种不同情况做更细微的区别和描述 所谓关联端点 就是表示关联的连接线与类符号相衔接的那个点 对关联端点的修饰 有的是在端点附近标注某些符号或者文字 有的是把端点画成不同的形状 限定符是关联的一种属性 它的值划定了跨过一个关联与一个对象相关的对象集合 用限定符修饰的关联成为受限关联 3 4 关联端点的复杂情况 运用最基本的面向对象概念来分析和解决以下问题 3 4 关联端点的复杂情况 建立关联的过程如下 根据问题域和系统责任发现所需要的关联认识关联的属性和操作分析关联的多重性复杂情况的处理给出关联名或角色名为关联定位 4 如何建立关联 在OOA模型中建立关联的基本出发点 就是从问题域抽象出系统中要表达的关系 对模型中所有一经发现的所有的类 考虑每两个类之间是否存在这样的关系 提出并回答以下问题 在问题域中 这些类所描述的实际事物之间有那些值得注意的关系 这种关系信息在逻辑上是否需要通过来自各个类的对象实例所构成的有序对来体现 这种关系体现的信息是否需要在系统中进行保存 管理或维护 系统为完成其功能 是否查阅和使用由这种关系所体现的信息 4 1 根据问题与和系统责任发现所需要的关联 关联的属性和操作 关联类 这些概念 可以作为分析过程的中间环节上的过渡物 其思考过程是 发现模型中的两个 或者多个 类之间需要建立一个关联 发现系统还需要这个关联提供更多的信息 要把这些信息看成关联的属性和操作 并用关联来描述吗 无论对上述问题如何回答 都分析这些信息描述了问题域中的什么食物 把这种事物抽象为系统中的对象 用一个新增加的类描述这些信息 建立新增加的类和原先的各个类之间的关联 代替旧的关联 4 2 认识关联的属性和操作 对于每个关联 从它每个端点上的类来考察 看本端的一个对象实例可以和另一端的多少个对象实例发生关联 以确定另一端对象实例的数量约束 把分析结果标注到连接线另一端 确定关联的多重性对于清晰地描述一个关联是不可缺少的重要步骤 对关联的实现也至关紧要 4 3 分析关联的多重性 关联的复杂情况包括 带有属性或操作的关联 用限定符修饰的关联 一个类在关联中多次出现 n元关联 以及多对多关联 多对多关联是指那些二元的 不带属性和操作的关联 其操作过程如下 切断表示多对多关联的连接线 在断口上插入一个新增加的类 乳沟新增加的类恰好映射了问题域中的某种事物 就用这种事物的名称为它命名 否则用两端的类名中间加符号 为它命名 分别建立新增加的类和原先的两个类之间的关联 标明其多重性 4 4 复杂情况处理 给关联取一个适当的名字 以表示这个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论