`

UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

UML 
阅读更多
今天看到一篇好文,觉得还不错,褪去的记忆被唤醒:http://www.alisdn.com/wordpress/?p=1135

继承

指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;


实现

指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;


依赖

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过 河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;


关联

他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性 的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联 类A引用了一个类型为被关联类B的全局变量;


聚合

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期, 部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来 区分;


组合

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此 时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区 分;


 

对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引 用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关 系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖

分享到:
评论

相关推荐

    UML中继承实现依赖关联聚合组合的联系与区别_线条箭头.doc

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

    几种类间关系:继承、实现、依赖、关联、聚合、组合

    几种类间关系:继承、实现、依赖、关联、聚合、组合。可做为开发设计时速查手册。

    UML学习之依赖_关联_聚合_组合_继承

    UML学习之依赖_关联_聚合_组合_继承

    UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合).doc

    UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合).doc

    UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc

    UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc

    UML 继承,实现,依赖,关联,聚合

    NULL 博文链接:https://henry-cong.iteye.com/blog/939714

    UML:类图关系总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 泛化(Generalization) 【泛化关系】:是一种...

    UML和模式应用(架构师必备).part07.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML和模式应用(架构师必备).part02.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML和模式应用(架构师必备).part06.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML类图怎么画学习示例

    UML类图(Class diagram)是统一建模语言(UML)的一种图形表示,用于显示系统的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系。 在类图中,每个类由一个包含类名、属性和方法的矩形表示,...

    UML与系统分析设计

    5.3 聚合与组合 5.3.1 聚合 5.3.2 组合 5.4 泛化 5.4.1 泛化/特化 5.4.2 继承 5. 3 重载与多态性 5.5 依赖 5.6 对象图 5.6.1 对象 5.6.2 对象图 5. 7 接口 5.8 对象类的高级概念 ...

    UML类图几种关系的总结

    泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的...

    架构师之路4-设计模式.pdf

    UML类图的标记语言我都忘了我记了多少遍,忘了多少遍了!只有捋出来头绪和关联,才可能永远记住并融入你的思维方式,没有任何联系的东西,我们...has-a:包括四种关联关系的,组合,聚合,关联和依赖,依据关系强弱排名

    UML类图与类的关系详解

    类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。在画...

    UML和模式应用(架构师必备).part01.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML和模式应用(架构师必备).part03.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML和模式应用(架构师必备).part04.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

    UML和模式应用(架构师必备).part08.rar

    32.9 软件中的类层次结构和继承关系 32.10 关联类 32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32...

Global site tag (gtag.js) - Google Analytics