`
daniel_tu
  • 浏览: 184242 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
 
阅读更多
继承

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

实现

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

依赖

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

关联

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

聚合

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

组合

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

对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;

但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

 

-----------------------------------------------------------------------------------------------------------------------------------------------

 

依赖(Dependency)

实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。 更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所 示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的 各个类之间的关系,表示出包和包的关系。

 

关联(Association)

实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在Java中,关联(图E) 转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity)修饰符暗示 着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个 Employee。

 

聚合(Aggregation)

聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。

关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。

 

合成(Composition)

合成 (图G) 是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局 部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。

Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。

 

泛化(Generalization)

泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系

 

实现(Realization)

实例(图I)关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

分享到:
评论

相关推荐

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

    UML类图关系泛化、继承、实现、依赖、关联、聚合、组合 UML类图关系是Unified Modeling Language(统一建模语言)的核心概念之一,用于描述系统中的对象之间的关系。本文将对UML类图关系中的泛化、继承、实现、依赖...

    UML中依赖泛化关联实现聚合组合的C#实现

    在 C# 中,我们可以使用继承、接口和委托来实现 UML 中的依赖泛化关联实现聚合组合。例如,我们可以使用继承来实现泛化关系,可以使用接口来实现实现关系,可以使用委托来实现依赖关系。 在实际开发中,我们可以...

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

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

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

    在 UML 中,还有泛化关系、关联关系、聚合关系、组合关系等多种关系,这些关系都是类与类、或者类与接口之间的关系,可以用来描述类与类、或者类与接口之间的继承、实现、依赖、关联、聚合、组合等关系。 泛化关系...

    UML类图关系大全(关联、组合、聚合、依赖、泛化)

    本篇文章将深入探讨UML类图中的五种主要关系:关联、组合、聚合、依赖和泛化,以及它们在实际编程中的应用。 **关联** 是类之间的一种结构关系,表示类之间的连接或相互作用。它通常用一条实线表示,可以是单向或...

    UML中依赖泛化关联实现聚合组合的Java实现

    ### UML中依赖、泛化、关联、聚合与组合的Java实现详解 #### UML基础知识概览 统一建模语言(UML)作为一种图形化的标准化建模语言,为软件开发提供了强大的可视化工具,帮助开发者理解、设计和记录软件系统。UML...

    JDK UML 类图大全

    9. **组合(Composition)**: 更强的聚合关系,表示一个类是另一个类的构成部分,且有生命周期上的依赖,用实心菱形表示。 **JDK UML类图的价值** 1. **理解API**: 通过类图,我们可以清晰地看到JDK类库中类与类...

    UML类图关系大全!!!!!

    2. **聚合关系**:表示整体与部分的关系,如“汽车”和“轮胎”。聚合是关联的特殊形式,强调的是部分是可分离的,可以属于多个整体。 3. **组合关系**:比聚合更强烈的整体与部分关系,部分不能脱离整体存在,如...

    UML类图说明类图关系

    **关联关系**是UML类图中最基本的关系之一,表示类与类之间的连接方式。 - **普通关联**:最常见的关联类型,表示两个类之间的简单连接关系。例如,“人”类与“计算机”类之间的关联。 - **递归关联**:当一个类...

    UML类图的各符号含义及表示

    9. 基数(Multiplicity):在关联、聚合和组合关系中,基数表示一个类的实例可以有多少个对应实例,用数字表示。例如,一个鸟有两只翅膀,基数可以写作"1..2"。 UML类图中的关系分为五种: - 关联(Association):...

    UML类图几种关系的总结

    在UML类图中,存在六种基本的关系类型:泛化、实现、关联、聚合、组合以及依赖。接下来,我们将详细介绍这些关系的含义、特点以及应用场景。 ### 泛化(Generalization) **定义:** 泛化关系是一种继承关系,表示...

    UML类图符号 UML类图符号 UML类图符号

    类图是UML中的静态结构模型,用于描述系统中的类、对象、接口、继承、实现、关联、聚合、组合、依赖等关系。 类图符号可以分为以下几类: 1. 类(Class):使用三层矩形框表示,第一层显示类的名称,如果是抽象类...

    ROSE画图--UML类图关系大全.doc

    首先,UML类图是描述系统静态结构的一种模型,它通过类、接口、关联、继承、聚合和组合等元素来表示系统中对象之间的关系。ROSE作为一款强大的UML建模工具,提供了一套直观的图形界面,使得用户可以轻松地创建和编辑...

    UML类图画法全程解析

    3. 泛化(Generalization):泛化关系代表继承关系,表示"is-a"的关系,使用空心三角形加实线表示。 4. 依赖(Dependency):依赖关系描述了一个类如何使用另一个类,是"uses-a"的关系,用虚线箭头表示。 5. 关联...

    UML类图详解,更深入的理解类图

    UML类图关系分为关联、聚合/组合、依赖、泛化(继承)四种。 1. 关联 关联关系是类图中最基本的关系,它描述了类之间的相互关系。关联关系分为双向关联、单向关联、自身关联三种。 * 双向关联:C1-C2,指双方都...

    UML基础与应用--UML类图解析

    UML类图主要用于描述系统的静态结构,定义类、接口、关联、泛化、实现等关系。 UML类图的组成部分包括: 1. 类(Class):对真实世界中事物的抽象,描述名称、属性和方法。 2. 关联(Association):描述类之间的...

    UML类图关系表

    在UML中,类图展示了类与类之间的多种关系,包括关联、单向关联、自关联、多重关联、聚合、组合、依赖以及泛化关系。下面我们将详细探讨这些关系及其在Java代码中的体现。 1. **关联关系**: - **双向关联**:例如...

    UML类图、类与类间关系文档(UML必看)

    首先,UML类图由一系列类和它们之间的关联、依赖、泛化(继承)以及实现关系构成。类是系统中的基本构造块,它封装了数据(属性)和行为(操作)。在UML中,类通常用一个带有三个矩形的框来表示,顶部矩形代表类名,...

    UML类图.docx

    在UML类图中,不同类型的关系反映了不同强度的联系,其强度排序大致为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。 #### 五、总结 UML类图是软件设计和开发过程中的重要工具之一,通过图形化的方式直观地展示了...

    java之UML类图元素

    - **泛化(Generalization)**:泛化表示继承关系,UML中用箭头表示,Java中用`extends`关键字实现。 - **实现(Realization)**:实现关系表示类实现了接口的约定,Java中用`implements`关键字表示。 理解并熟练运用...

Global site tag (gtag.js) - Google Analytics