UML类图符 含义

UML类图符 含义

    • UML类图的各符 含义
      • 类(class)
      • 接口
      • 继承类(extends)
      • 实现接口(implements)
      • 关联(Association)
      • 聚合(Aggregation)
      • 组合(Composition)
      • 依赖(Dependency)
      • 基数
    • 类之间的关系
      • 关联(Association)
      • 依赖(Dependency)
      • 聚集(Aggregation)
      • 泛化(Generalization)
      • 实现(Realization)
    • 以下是GOF设计模式中的描述
      • 如下实线箭头表示, 继承, 从一个非接口类的继承
      • 如下那条连线表示双向关联
      • 如下那条连线表示单向关联
      • 如下软件包框图
      • 如下虚线的箭头表示实现一个接口
      • 如下关联连线
      • 如下聚合连线1
      • 如下聚合连线2
      • 如下反射关联连线

UML类图的各符 含义

  • 类图基本符 可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形
  • 由这些基本的图形进行组合构成了类图的基本符 。这里要注意这几个符 的顺序,代表了类与类之间关系的耦合程度。越向右耦合度越高。
  1. 虚线+箭头 表示即依赖的关系,实线+箭头表示关联的关系
  2. 虚线+空心右三角表示implements
  3. 实线+空心右三角表示的是泛化,即类的继承关系
  4. 实线+空心菱形表示的是聚合的关系
  5. 实线+实心菱形则表示组合的关系
  • 另外一点是在看类图的时候要注意。类图的思想其实也还没有脱离面向对象的思想,以某个类为中心,有些线是射入的而有些线是射出的。射入的线表示的是这个类被哪些类所调用而射出的线则表示该类调用了哪些类,包括泛化,关联,依赖,聚合和组合四种关系。这类似于离散数学中有关图部分的描述。

类(class)

使用三层矩形框表示
第一层显示类的名称,如果是抽象类,则就用斜体显示。
第二层是字段和属性。
第三层是类的方法。
  • 注意前面的符 ,‘+’表示public,‘-’表示private,‘#’表示protected。

接口

  • 使用两层矩形框表示,与类图的区别主要是顶端有<>显示 。
  • 第一行是接口名称。
  • 第二行是接口方法。

继承类(extends)

  • 用空心三角形+实线来表示。

实现接口(implements)

  • 用空心三角形+虚线来表示

关联(Association)

  • 用实线箭头来表示,例如:燕子与气候

聚合(Aggregation)

  • 用空心的菱形+实线箭头来表示
  • 聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工

组合(Composition)

  • 用实心的菱形+实线箭头来表示
  • 组合:部分和整体的关系,并且生命周期是相同的。例如:人与手

依赖(Dependency)

  • 用虚线箭头来表示,例如:动物与氧气

基数

  • 连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的。

类之间的关系

UML把类之间的关系分为以下5种
关联:类A与类B的实例之间存在特定的对应关系
依赖:类A访问类B提供的服务
聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成
泛化:类A继承类B
实现:类A实现了B接口

关联(Association)

  • 关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。

  • 按照类之间的数量对比,关联可以分为以下三种:

    • 一对一关联
    • 一对多关联
    • 多对多关联
  • 注意:关联还要以分为单向关联和双向关联

依赖(Dependency)

  • 依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。如果类A访问类B的属性或者方法, 或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性。

聚集(Aggregation)

  • 聚集指的是整体与部分之间的关系,在UML中用带实线的菱形箭头表示。
  • 聚集关系还可以分为两种类型:
    • 被聚集的子系统允许被拆卸和替换,这是普通聚集关系。
    • 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或者组成关系。
  • 注:强聚集(组成)可用带实线的实心菱形箭头表示。

泛化(Generalization)

  • 泛化指的是类之间的继承关系,在UML中用带实线的三角形箭头表示。

实现(Realization)

  • 实现指的是类与接口之间的关系,在UML中用带虚线的三角形箭头表示。

以下是GOF设计模式中的描述

  • 箭头和三角表示子类关系。
  • 虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。
  • 普通的箭头线表示相识(acquaintance也叫关联或者引用),意味着一个对象仅仅知道另一个对象。相识的对象可能请求彼此的操作,但他们不为对方负责,它只标示了对象间较松散的耦合关系。
  • 尾部带有菱形的箭头线表示聚合(aggregation),意味着一个对象拥有另一个对象或者对另一个对象负责。一般我们称一个对象包含另一个对象,或者是另一个对象的一部分。聚合意味着聚合对象和其所有者具有相同的生命周期。
  • 如下那条连线表示双向关联

    如下软件包框图

    如下关联连线

    如下聚合连线2

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月8日
下一篇 2019年10月8日

相关推荐