




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML类之间的关系图软件开发 2010-05-05 08:33:14 阅读133060 评论0 字号:大中小 订阅 类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。横向关系较为微妙,按照UML的建议大体上可以分为四种:1. 依赖 (Dependency)2. 关联 (Association)3. 聚合 (Aggregation)4. 组合 (Composition)它们的强弱关系是没有异议的:依赖 关联 聚合 组合然而它们四个之间的差别却又不那么好拿捏,需要好好体会。1. 依赖:o UML表示法:虚线 + 箭头 o o 关系: . uses a .o 此关系最为简单,也最好理解,所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。o 典型的例子很多,比如:class Humanpublic void breath()Air freshAir = new Air();freshAir.releasePower();public static void main()Human me = new Human();while(true)me.breath();class Airpublic void releasePower()/do sth.o o o 释义:一个人自创生就需要不停的呼吸,而人的呼吸功能之所以能维持生命就在于吸进来的气体发挥了作用,所以说空气只不过是人类的一个工具,而人并不持有对它的引用。2. 关联:o UML表示法:实线 + 箭头 o o 关系: . has a .o 所谓关联就是某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。o 典型的例子很多,比如:class HumanArrayList 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(); o o 释义:人从生至死都在不断的交朋友,然而没有理由认为朋友的生死与我的生死有必然的联系,故他们的生命期没有关联,我的朋友又可以是别人的朋友,所以朋友可以共享。3. 聚合: o UML表示法:空心菱形 + 实线 + 箭头 o o 关系: . owns a .o 聚合是强版本的关联。它暗含着一种所属关系以及生命期关系。被聚合的对象还可以再被别的对象关联,所以被聚合对象是可以共享的。虽然是共享的,聚合代表的是一种更亲密的关系。o 典型的例子很多,比如:class HumanHome myHome;public void goHome()/在回家的路上myHome.openDoor();/看电视public static void main()Human me = new Human();while(true)/上学/吃饭me.goHome();o o 释义:我的家和我之间具有着一种强烈的所属关系,我的家是可以分享的,而这里的分享又可以有两种。其一是聚合间的分享,这正如你和你媳妇儿都对这个家有着同样的强烈关联;其二是聚合与关联的分享,如果你的朋友来家里吃个便饭,估计你不会给他配一把钥匙。4. 组合:o UML表示法:实心菱形 + 实o 线 + 箭头 o 关系: . is a part of .o 组合是关系当中的最强版本,它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期的关系。被包含的对象还可以再被别的对象关联,所以被包含对象是可以共享的,然而绝不存在两个包含对象对同一个被包含对象的共享。o 典型的例子很多,比如:class HumanHeart myHeart = new Heart();public static void main()Human me = new Human();while(true)myHeart.beat();o o 释义:组合关系就是整体与部分的关系,部分属于整体,整体不存在,部分一定不存在,然而部分不存在整体是可以存在的,说的更明确一些就是部分必须创生于整体创生之后,而销毁于整体销毁之前。部分在这个生命期内可以被其它对象关联甚至聚合,但有一点必须注意,一旦部分所属于的整体销毁了,那么与之关联的对象中的引用就会成为空引用,这一点可以利用程序来保障。心脏的生命期与人的生命期是一致的,如果换个部分就不那么一定,比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间管理培训课件讲解
- 时间的速度课件
- 小鸟造房子课件
- 时装画速写课件
- 2025餐饮业团餐配送合同集成手册
- 二零二五版城市综合体LED大屏广告租赁管理协议
- 2025版绿色金融借款合同示范文本
- 二零二五版离婚协议书:房产债务分割与处理细则
- 二零二五年度别墅借款抵押交易合同模板
- 二零二五年度商用空调安装与能耗优化合同范本
- 2025年广西专业技术人员继续教育公需科目(二)答案
- 护理学解剖课件
- 2025至2030年中国磷系水处理剂行业市场分析研究及产业需求研判报告
- 患者信息安全课件
- T-CDHA 20-2024 T-CAR 20-2024 供热碳排放核算和碳排放责任分摊方法
- (2025)党史知识竞赛试题库(含答案)
- 动力电池气密性检测及故障处理
- 2025年文化产业与商业模式知识测评试卷及答案
- 中建材特种玻璃深加工一期工程项目环评报告
- T/GIEHA 013-2019商用厨房油烟管道系统清洗规范
- 河南省2024-2025学年天一大联考高三考前模拟考试历史试卷+答案
评论
0/150
提交评论