类和类之间的依赖、关联、聚合、组合关系.pdfVIP

类和类之间的依赖、关联、聚合、组合关系.pdf

  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文档。上传文档
查看更多
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父 接口)的功能,并可以增加它自己的新功能的能力。在 Java中继承关系通过关 键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用 一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口 (可以是多个)的功能,实现 是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明确 标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭 头的虚线表示,从类指向实现的接口。 三、依赖关系 简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具 有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要 过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为 类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系 用由类A指向类B的带箭头虚线表示。 四、关联关系 关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种 关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期 性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层 面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了 一个类型为被关联类B的全局变量。在UML类图设计中,关联关系用由关联类A 指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多 重性标记。 五、聚合关系 聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关 系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以 属于多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、公司与员 工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻 击潜艇等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在 UML类图设计中,聚合关系以空心菱形加实线箭头表示。 六、组合关系 组合也是关联关系的一种特例,它体现的是一种contains-a 的关系,这种关系比聚合更强, 也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生 命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。表现在代码层面,和关联 关系是一致的,只能从语义级别来区分。在UML 类图设计中,组合关系以实心菱形加实线 箭头表示。 七、总结 对于继承、实现这两种关系没多少疑问,它们体现的是一种类和类、或者类与接口间的纵 向关系。其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区 分的,有很多事物间的关系要想准确定位是很难的。前面也提到,这四种关系都是语义级别 的,所以从代码层面并不能完全区分各种关系,但总的来说,后几种关系所表现的强弱程度 依次为:组合聚合关联依赖。

文档评论(0)

134****3224 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档