欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    UML中几种类间关系.docx

    • 资源ID:4925630       资源大小:280.17KB        全文页数:20页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    UML中几种类间关系.docx

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、 父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类 或者接口与接口之间最常见的关系;在Java中此类关系通过关键字 extends明确标识,在设计时一般没有争议性;实现 指的是一个class类实现interface接口(可以是多个)的功能;实现 是类与接口之间最常见的关系;在Java中此类关系通过关键字 implements明确标识,在设计时一般没有争议性;依赖 可以简单的理解就是一个类A使用到了另一个类B,而这种使用关 系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响 到A;*如某人要过河,需要借用一条船,此时人与船之间的关系就 是依赖;表现在代码层面,为类B作为参数被类A在某个method 方法中使用;关联他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系, 比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然 性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是 平等的、关联可以是单向、双向的;表现在代码层面,为被关联窕 以类属性的形式出现在关联类A中,也可能是关联类A引用了一个 类型为被关联类B的全局变量;聚合聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系, 即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各 白的生命周期,部分可以属于多个整体对象,也可以为多个整体对象 共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面, 和关联关系是一致的,只能从语义级别来区分;组合组合也是关联关系的一种特例 他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关 系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着 部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联 关系是一致的,只能从语义级别来区分;对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、 或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或 者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的 关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别 的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种 关系所表现的强弱程度依次为:组合>聚合关联 > 依赖UML关系UML定义的关系主要有6种:依赖,泛化,关联,实现,聚合和组 合。泛化(Generalization)通常所说的继承关系。UML中用带空心箭头 的实线表示Generalization关系,箭头指向一般个体。实现(Realize):元素A定义一个约定,元素B实现这个约定,则B 和A的关系实Realize,B realize A。这个关系最常用于接口。UML 中用空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。依赖(Dependency)元素A的变化会影响B,但反之不成立,那么B 和A是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依 赖关系,但由于其有更特殊的用途,所以被单独描述°UML中用带 箭头的虚线表示Dependency关系,箭头指向被依赖元素。关联(Association):元素间的结构化关系,是一种弱关系,被关联的 元素间通常可以被独立的考虑。聚合(Aggregation):关联关系的一种特例,表示部分和整体的关系。 UML中通常用带空心菱形头的实线表示Aggregation关系,菱形头 指向整体。组合(Composition):组合是聚合关系的变种,表示元素间更强的组 合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而 聚合的个体则可能是被多个整体所共享的不一定会随着某个整体的 破坏而被破坏。UML中用带实心菱形头的实线表示Compositon关 系,菱形头指向整体。卜面将以实例来展示各种关系。依赖(Dependency) 实体之间一个'使用”关系暗示一个实体的规范发生变化后,可能影响 依赖于它的其他实例。更具体地说,它可转换为对不在实例作用域内 的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过 方法调用而获得的一个对象的引用,或者对一个类的静态方法的引 用。也可利用“依赖”来表示包与包之间的关系。由于包中含有类,可 以根据那些包中各个类之间的关系,表示出包与包之间的关系。关联(Association) 实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的, 它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。 多重度(Multiplicity饰符暗示着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象但是每个TimeCard只从属于单独一个Employee。聚合(Aggregation)聚合是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗 示着整体在概念上比局部更高的一个级别而关联暗示两个类上位于 相同的级别。关联和聚合的区别粗纯粹是在概念上的,而且严格反应在语义上。聚 合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。合成(Compositon) 合成是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职 责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被 销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局 部不可与其他整体共享。但是,整体可将所有权转交给另一个对象, 后者随即将承担生存期职责。Employee和TimeCard的关系或许更适合表示成'合成”,而不是表 示成“关联”。(以下代码 private TimeCard tc; 应改成 TimeCard tc = newTimeCard;)泛化(Generalization) 泛化表示一个更泛化的元素和一个更具体的元素之间的关系泛化是 用于对继承进行建模的UML元素。实现(Realization) 实现关系指定两个实体之间的一个合同。换言之,一个实体定义一个 合同,而另一个实体保证履行该合同。JavaUMLpublic public)interface CollegePerson class Professor implements CollegePersUML中的“关系”总结UML中,事物之间的联系方式,无论是物理上的,还是逻辑上的, 都用“关系(relationship)”来建模。在面向对象的建模中,将“关 系”细分为三种:依赖、泛化、关联。下面分别说明。1、 依赖 (dependency)依赖是一种使用关系。它表示一个事物的变化会影响到所有使用 它的事物的行为。在UML图形表示法中,依赖用一个带方向的虚线 来表示,箭头指向被依赖的事物。针对面向对象的“类”来说 如果一个类A使用另外一个类B作为其函数的参数,或者作为本地变量,那么就说A依赖于B。事实上,“依赖”关系不仅仅在类之间存在,UML中的“包”之 间也经常存在这种关系。2、泛化泛化是一种“is-a”的关系,它表示一般事务(父类)和该事物的 更具体更特殊的类(子类)之间的一种关系。在图形上,泛化用一条带有空心大箭头的有向实线来表示,箭头 方向指向父类。作为延伸,或者说是一种特殊的“泛化';出现了事务之间的另外 一种关系,即“实现(realization)"。在类的实现关系中,一个类 描述了另外一个类必须实现的契约,即接口。也有人说,实现是一种和泛化、依赖都不同的另外一种关系,但 不可否认的是,实现和泛化、依赖有着千丝万缕的联系,它是泛化和 依赖在语义上的结合;从某种程度上说,可以认为实现是一种泛化, 也可以认为实现是一种“依赖”。因此,在图形上,实现就用泛化和 依赖的结合形式来表示:用带有空心大箭头的虚线来表示,箭头指向 描述契约的那个类。以上这种形式是实现的规范描述形式,另外针对实现关系,还有 一种省略方式 用接口的棒棒糖型表示法一一你看到那个大大的棒棒 糖了吗?3、 关联(association)关联表示的是一种结构关系。它描述了一个事物与另外一个事物 的对象之间的拥有关系。例如Library类和Book类之间具有一个一 对多的关联关系,它表明一个Library可以有多个Book,但是一个 Book仅仅只能被一个Library所拥有。在图形上,关联使用细的实线来表示。一般地,用细实线连接起来的两个类是双向导航的,也就是说可 以从一个类导航到另外一个类。举例来说,Person类和Company类 就是双向导航的。但是,有时也可以讲导航限制为单项的,例如ser 类和Password类 我们可以从User类导航到Password类,但是不 能从Password类导航到User类。这种单向的导航关系,在图形上用 带有箭头的实现来表示,箭头的方向表示导航的方向。上述的简单关联,表示被关联的两个类在概念上其地位是相等 的,谁也不比谁中要。然而,有些类之间具有“整I部分”的关系,也就是说,一个大的整体由较小的部分组成。在UML中,表示这种 “组成”关系的建模方式有两种:聚合和组合。聚合(aggregation)聚合表示一种has-a的关系,暗示着较大的对象拥有这较小的对 象,然而这种拥有关系不是那种一损俱损的强拥有关系,也就是说, “大对象”的生命期结束的时候,“小对象”的生命期并不受影响。举例来说,机场和飞机就是这种聚合关系。在图形上,聚合用一个空心的菱形加上实线来表示,菱形放置在表示整体的类的那端。组合(composition)组合关系是对聚合关系的加强,它说明大对象不仅仅拥有小对象,而且他们是一个有机体,具有共同的生命周期,一损俱损。例如汽车和车轮就是这种关系。在图形上,组合使用实心的菱形和实线来表示。UML类图关系1. 关联A -> B关联表示相识关系,实际表现为类A知道类B的存在,它 可以调用类B的公共属性和方法,但没有生命周期的依赖。代码表 现为:Class A(Public:B *b;;Class B(;类图为表现为:A > B#存在双向关联和自身关联2. 组合/聚合组合/聚合是整体与部分的关系。类A聚合类B,类B可以脱离类A独立存在。代码表现为:Class A(Public: B b;;Class B(;类图表现为:类A组合类B,类A需要知道类B的生存周期,即类A可能控 制类B的生成和释放,或者通过某种方式知道类B的生成和释放。代码表现与聚合相同,类图表现为:3. 依赖类A依赖类B,那么类A可能需要用到类B的一些方法,要完成 类A的所有功能,一定要类B的方法的协助才行,不产生属性,一 般是类A的头文件中包含类B的头文件,实际表现为类A的一些方 法可能需要把类B作为参数使用。代码表现为:/A.h#include “B.h”Class A(Void Func(B *b);;/B.hClass B(类图表现为:IA t也关联是类之间的一种关系,例如老师教学生,老公和老婆,水壶 装水等就是一种关系。这种关系是非常明显的,在问题领域中通过分 析直接就能得出。依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类 的关系不是太明显的时候(可以说是uses ”了那个类),就可以把这 种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关 系,就是“我在某个方法中偶然用到了它,但在现实中我和它并没多 大关系”。例如我和锤子,我和锤子本来是没关系的,但在有一次要 钉钉子的时候,我用到了它,这就是一种依赖,依赖锤子完成钉钉子 这件事情。组合是一种整体-部分的关系,在问题域中这种关系很明显,直接 分析就可以得出的。例如轮胎是车的一部分,树叶是树的一部分,手 脚是身体的一部分这种的关系,非常明显的整体部分关系。上述的几种关系(关联、聚合/组合 依赖)在代码中可能以指针、 引用、值等的方式在另一个类中出现,不拘于形式,但在逻辑上他们 就有以上的区别。这里还要说明一下,所谓的这些关系只是在某个问题域才有效, 离开了这个问题域,可能这些关系就不成立了。4. 泛化(继承)继承关系,动物与狮子老虎大象的关系。代码表现为:/A.h#include “B.h”Class A: public B(;类图表现为:

    注意事项

    本文(UML中几种类间关系.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开