UML类图中的符号解释

转载 2015年07月07日 17:44:48

在UML的定义中,描述类和对象之间的关系,包括以下几种方式:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization)。现分别说明如下:

1.依赖(Dependency)

在uml中,“依赖”表示为带箭头的虚线,箭头指向被依赖的元素。是类与类之间的连接,表示为一个类依赖于另一个类的定义,其中一个类的变化将影响另一个类。依赖总是单向的,不应该存在双向依赖,这一点要特别注意。更具体的说,依赖可以理解为:一个类(A)对不在其实例作用域内的另一个类或对象(B)的任何类型的引用。大致包含以下几种情况:

(1)局部变量;

(2)方法的参数;

(3)静态方法的调用;

下面是依赖关系的uml示意图:


2.关联(Association)

在uml中,关联表示为带箭头的实线。关联可以是单向的,也可以是双向的。如果是双向关联,则可以表示为双向箭头,或者没有箭头。一般来说,系统设计应表现为单向关联,这样利于维护。一个关联可以附加“多重性”的修饰符,表示两个类之间的数量关系。关联可以理解为:一个类(A)持有另一个类或对象(B。具体表现为:

(1)成员变量

下面是关联关系的uml示例图:


上面的关联表示,一个Employee持有(has)0个或多个TimeCard。

3.聚合(Aggregation)

在uml中,聚合关系表示为空心的菱形箭头线。聚合关系是关联关系的一种,表示一种“强”关联关系。对比与关联关系,两个类是处于同一个层次的。而聚合关系,两个类处于不同的层次,强调了一个整体/局部的关系。例如一辆汽车有一个引擎,4个轮胎。

在聚合关系中,体现了一种“弱拥有”的概念。也就是说,对象A拥有对象B,但B并不是A的组成部分。更具体的表现为,如果AB聚合而成,则A包含B的全局对象,但B对象可以不在A对象创建时创建。回到前面的例子,汽车对象由轮胎对象聚合而成,但是轮胎对象的生命期并不受汽车对象的左右。当汽车对象销毁时,轮胎对象也可以单独存在!

下面是聚合关系的uml示意图:


从代码上看,聚合和关联没有任何区别。这里仅仅体现一种概念上的含义。在创建ClassA的时候,不一定需要同时创建ClassB的实例。

 

4.组合(Composition)

在uml中,组合关系表示为实心菱形箭头线。组合也叫合成。合成关系强调了比聚合关系更加强的整体/部分的关联,例如人和四肢。和聚合关系所不同的是,在组合关系中,虽然局部不一定随着整体的销毁而销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。也就是说,组合关系中,局部的存活期一定是小于,最多是等于整体的存活期的。

下面是组合关系的uml示例图:

 

5.泛化(Generalization)

泛化也就是通常所谓的继承关系,在uml中表示为一个带空心三角的实线。表示为is-a的关系,是对象间耦合度最大的一种关系,子类继承父类的所有细节,并可以在此基础上添加自己的特性。

下面是泛化关系的uml图:


6.实现(Realization)

所谓实现就是对接口的定义实现,很简单。表现为带箭头的虚线。

下面的实现的uml图:

详解八大UML类图符号的表示法

类(Class) 类(图A)是对象的蓝图,其中包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。 属性和操作之前可附加一个可...
  • hitwhylz
  • hitwhylz
  • 2014年04月25日 16:51
  • 4997

Java学习笔记(十六):UML类图符号以及各种关系

转自: UML类图符号 各种关系说明以及举例UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Compo...
  • Jalon2015
  • Jalon2015
  • 2016年03月29日 10:14
  • 3007

Visio中UML类图符号说明及使用简介

最近做详细设计,选了Visio来画UML图,主要是因为Visio用得多,习惯了。但用来画类图时,顿时就觉得不好用,一则是因为大部分元素高度不能调整,如包、类等,如何解除锁定也是没用,导致设计类时,如果...
  • qq798833488
  • qq798833488
  • 2015年05月28日 11:05
  • 3039

UML类图中的关联、聚合和组合

  • 2011年06月03日 17:30
  • 416KB
  • 下载

UML类图符号标识符解释

来自:http://liuchuxiong2003.blog.sohu.com/168088327.html 类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。...
  • ArvinStudy
  • ArvinStudy
  • 2012年12月11日 23:57
  • 643

UML类图中的接口与接口实现

  • 2014年10月17日 10:05
  • 165KB
  • 下载

UML类图符号简介.docx

  • 2012年08月03日 07:51
  • 262KB
  • 下载

UML类图中的类之间关系

在学习spring源码的过程中看见一篇文章,里面各种类图,突然发现自己面对着类图中的各种箭头突然分不清了,虽然寒心,但是也不能不进步,马上百度,啃下这个知识点压压惊!下面是该知识点,方便后面查找! ...
  • java_best
  • java_best
  • 2016年11月08日 17:30
  • 149

浅谈UML类图中类之间的5种关系

什么是UML类图? 以前学设计模式的时候一直迷迷糊糊,在画类图时经常分不清各种形状的线条之间的区别,到底依赖和关联有什么区别,聚合和组合又是什么鬼,今天学习之后终于真正了解,通过现实中的例子来解释区分...
  • IT_ZJYANG
  • IT_ZJYANG
  • 2016年05月09日 18:19
  • 2767

UML类图中箭头和线条的含义和用法

UML类图中箭头和线条的含义和用法 在学习UML过程中,你经常会遇到UML类图关系,这里就向大家介绍一下UML箭头、线条代表的意义,相信通过本文的介绍你对UML中箭头、线条的意义有更明确的认识。...
  • hewei0241
  • hewei0241
  • 2012年06月18日 19:49
  • 25330
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UML类图中的符号解释
举报原因:
原因补充:

(最多只允许输入30个字)