全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象面向对象 依赖依赖 关联关联 聚合聚合 组合组合 关系关系 如果你确定两件对象之间是 is a 的关系 那么此时你应该使用继承 比如菱形 圆形和方形都是形状的 一种 那么他们都应该从形状类继承而不是聚合 如果你确定两件对象之间是 has a 的关系 那么此时你应该使用聚合 比如电脑是由显示器 CPU 硬 盘等组成的 那么你应该把显示器 CPU 硬盘这些类聚合成电脑类 而不是从电脑类继承 类间的关系 网上关于此类的讨论非常多 发现对于该问题的理解各有各的说法 而各个说法中又相去甚远 通过浏览 这些讨论以及对 O Reilly UML 2 0 In A Nutshell 2007 的参考 发表一下自己的看法 类间关系有很多种 在大的类别上可以分为两种 纵向关系 横向关系 纵向关系就是继承关系 它的概念非常明确 也成为 OO 的三个重要特征之一 这里不过多的讨论 横向关系较为微妙 按照 UML 的建议大体上可以分为四种 依赖 Dependency 关联 Association 聚合 Aggregation 组合 Composition 它们的强弱关系是没有异议的 依赖 关联 聚合 组合 然而它们四个之间的差别却又不那么好拿捏 需要好好体会 依赖 UML 表示法 虚线 箭头 关系 uses a 此关系最为简单 也最好理解 所谓依赖就是某个对象的功能依赖于另外的某个对象 而被依赖的对象只 是作为一种工具在使用 而并不持有对它的引用 典型的例子很多 比如 class Human public void breath Air freshAir new Air freshAir releasePower public static void main Human me new Human while true me breath class Air public void releasePower do sth 释义 一个人自创生就需要不停的呼吸 而人的呼吸功能之所以能维持生命就在于吸进来的气体发挥了作 用 所以说空气只不过是人类的一个工具 而人并不持有对它的引用 关联 UML 表示法 实线 箭头 关系 has a 所谓关联就是某个对象会长期的持有另一个对象的引用 而二者的关联往往也是相互的 关联的两个对象 彼此间没有任何强制性的约束 只要二者同意 可以随时解除关系或是进行关联 它们在生命期问题上没 有任何约定 被关联的对象还可以再被别的对象关联 所以关联是可以共享的 典型的例子很多 比如 class Human ArrayList friends new ArrayList public void makeFriend Human human friends add human public static void main Human me new Human while true me makeFriend mySchool getStudent 释义 人从生至死都在不断的交朋友 然而没有理由认为朋友的生死与我的生死有必然的联系 故他们的 生命期没有关联 我的朋友又可以是别人的朋友 所以朋友可以共享 聚合 UML 表示法 空心菱形 实线 箭头 关系 owns a 聚合是强版本的关联 它暗含着一种所属关系以及生命期关系 被聚合的对象还可以再被别的对象关联 所以被聚合对象是可以共享的 虽然是共享的 聚合代表的是一种更亲密的关系 典型的例子很多 比如 class Human Home myHome public void goHome 在回家的路上 myHome openDoor 看电视 public static void main Human me new Human while true 上学 吃饭 me goHome 释义 我的家和我之间具有着一种强烈的所属关系 我的家是可以分享的 而这里的分享又可以有两种 其一是聚合间的分享 这正如你和你媳妇儿都对这个家有着同样的强烈关联 其二是聚合与关联的分享 如果你的朋友来家里吃个便饭 估计你不会给他配一把钥匙 组合 UML 表示法 实心菱形 实线 箭头 关系 is a part of 组合是关系当中的最强版本 它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期 的关系 被包含的对象还可以再被别的对象关联 所以被包含对象是可以共享的 然而绝不存在两个包含 对象对同一个被包含对象的共享 典型的例子很多 比如 class Human Heart myHeart new Heart public static void main Human me new Human while true myHeart beat 释义 组合关系就是整体与部分的关系 部分属于整体 整体不存在 部分一定不存在 然而部分不存在 整体是可以存在的 说的更明确一些就是部分必须创生于整体创生之后 而销毁于整体销毁之前 部分在 这个生命期内可以被其它对象关联甚至聚合 但有一点必须注意 一旦部分所属于的整体销毁了 那么与 之关联的对象中的引用就会成为空引用 这一点可以利用程序来保障 心脏的生命期与人的生命期是一致 的 如果换个部分就不那么一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GB-T 38328-2019柔性直流系统用高压直流断路器的共用技术要求》专题研究报告
- 2025年大学四年级文化数字化专业《文化数据建模》期末考试测验卷及答案
- 民族弹拨乐器制作工岗前岗中实操考核试卷含答案
- 石油焦煅烧工安全理论水平考核试卷含答案
- 啤酒花加工工安全教育竞赛考核试卷含答案
- 《GBT 17454.1-2017 机械安全 压敏保护装置 第 1 部分∶压敏垫和压敏地板的设计和试验通则》专题研究报告
- 拖拉机电器装试工安全宣贯水平考核试卷含答案
- 照相机及器材制造工岗前理论评估考核试卷含答案
- 飞机无线电设备安装调试工成果转化知识考核试卷含答案
- 《GBT 35392-2017 无损检测 电导率电磁(涡流)测定方法》专题研究报告
- 部编版四年级语文上册第五六单元综合测评(含答案)
- 激光镭雕岗位安全培训课件
- 冷作钣金工培训课件
- 掘进队长考试题库及答案
- 代收个人居间费合同范本
- 知道智慧树西方经济学实验(山东联盟).满分测试答案
- 小区监控改造升级方案(3篇)
- 医院传染病管理培训课件
- 2025年noip试题详解及答案
- 呼吸科护士轮转工作汇报
- 学堂在线 遥测原理 章节测试答案
评论
0/150
提交评论