美文网首页程序员
(二)基础 —— UML 类图

(二)基础 —— UML 类图

作者: 虫百万 | 来源:发表于2019-01-12 16:03 被阅读0次

UML 类图存在的意义是为了帮助开发人员清理思路,这样有助于学习设计模式,能够通过UML类图宏观的了解到类与类和接口与接口之间的关系。


在 UML 类图中,关系是指类与类之间的关系(这里类的含义也包括接口与抽象),常见的关系有以下几种:

  • 泛化(Generalization)
  • 实现(Realization)
  • 关联(Association)、聚合(Aggregation)、组合(Composition)
  • 依赖(Dependency)

UML 类图的关系主要体现在:

  • 类与类之间的关系
  • 类与接口之间的关系
  • 接口与接口之间的关系

各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖


泛化关系(Generalization)

  • 泛化是类与类或接口与接口之间的一种继承关系,它指定了子类如何特化父类的所有特征和行为。
    比如:一个类继承自另一个类,一个接口继承自另一个接口。
  • 【体现形式】:在 PHP 中通过 extends 关键字来标识。
  • 【图形特征】:用实线连接的空心三角形箭头,箭头指向父类。

实现关系(Realization)

  • 实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。
    比如:一个类实现了一个或多个接口。
  • 【体现形式】:在 PHP 中通过 implements 关键字来标识。
  • 【图形特征】:用虚线连接的空心三角形箭头,箭头指向接口。

依赖关系(Dependency)

  • 依赖是一种类与类之间的使用关系,也是类与类之间最弱的关系,但尽量不要使用双向的互相依赖,而是更多使用单向依赖。
    比如:一个类A使用了类B,这种关系具有临时性特征,可能是类A的某个方法参数依赖了类B,也可能是类A的某个局部变量依赖了类B,那么当类B发生变更的时候,类A可能也要受到影响。
  • 【体现形式】:局部变量、方法的参数、或静态方法的调用。
  • 【图形特征】:虚线连接的普通箭头,箭头指向被使用者。

关联关系(Association)

  • 关联是一种类与类之间,或接口与接口之间的拥有的关系,它使一个类知道另一个类的属性和方法,体现的是一种强依赖的关系,而且两个类之间的关系是平等的,关联可以是双向的,也可以是单向的。
  • 【体现形式】:成员变量,类B作为类A的成员变量出现;类A拥有类B的实例。
  • 【图形特征】:实现连接的普通箭头,箭头指向被拥有者,双向的关联可以有两个普通箭头或者没有箭头,而单向关联也就只有一个箭头了。

聚合关系(Aggregation)

  • 聚合是关联关系的一种,主要表达的是整体与部分之间的关系,但部分脱离整体又可以独立存在,并且部分拥有独立的生命周期。
    比如:A对象可以包含B对象,但是B对象不是A对象的组成部分,B对象可以被单独使用,又可以独立运行。
  • 【体现形式】:成员变量,变量赋值可以在整体的构造方法中,也可以在普通的 set 方法中(依赖倒置,这也体现了两者可以具有不同的生命周期)。
  • 【箭头特征】:实线连接的空心菱形箭头,菱形箭头指向整体。

组合关系(Composition)

  • 组合关系也是关联关系的一种,并且同样是描述整体与个体之间的关系,它是比聚合关系还要强的关联关系,它要求普通的聚合关系中,代表整体的对象负责代表部分的对象的生命周期,也就是说部分生命周期受整体影响,如果整体不存在了,那么部分也就不存在了。
  • 【体现形式】成员变量,变量的赋值是在整体的构造方法中创建,外界不知道部分的存在,那么整体没了,部分也就不存在了(两者具有相同的生命周期)。
  • 【箭头特征】实线连接的实心菱形箭头,菱形指向整体。

下面的这张图,比较形象的展示了各种类图关系:

相关文章

  • [一]UML入门

    类图 二 UML类图讲解 三 UML类图讲解-自上而下 四 UML类图讲解-对比讲解

  • (二)基础 —— UML 类图

    UML 类图存在的意义是为了帮助开发人员清理思路,这样有助于学习设计模式,能够通过UML类图宏观的了解到类与类和接...

  • JavaScript面向对象之UML类图

    UML类图 什么是UML类图 UML(Unified Modeling Language)类图,中文意思为“统一建...

  • 09.代理模式和装饰模式的区别

    代理模式和装饰模式 代理模式UML代理模式类图 装饰模式UML装饰模式类图从类图来看,二者除了名称不同,几乎没有差...

  • UML基础

    最近项目书写文档用到UML类图和时序图有点多,重新整理了下UML的基础知识。软件: StarUML3.1.0 坚果...

  • 一张图简述UML类图

    一张图简述UML类图 UML建模常用视图中,类图可算是最多的,初学UML的类图绘制,基于starUML工具,现简记...

  • 设计模式补完计划

    目录 1.uml类图2.uml时序图3.设计模式 uml类图 泛化关系(继承):指类继承自类,接口继承自接口的关系...

  • (二)UML类图

    一 基本介绍 UML——Unified modeling language UML (统一建模语言),是一种用于软...

  • Java自学-接口与继承 UML图

    UML 图 步骤 1 : UML 图 —— 类之间的关系 UML-Unified Module Language统...

  • SDWebImage源码阅读(一)--基础架构

    SDWebImage架构图 SDWebImage的UML类图,具体UML类图的阅读规则,可以参考这篇文章:UML基...

网友评论

    本文标题:(二)基础 —— UML 类图

    本文链接:https://www.haomeiwen.com/subject/vtoqrqtx.html