UML定义

UML2.2中一共定义了14种图示,分类如下:

  • 结构式图形:强调的是系统式的建模
  • 行为式图形:强调系统模型中触发的事件
  • 交互式图形:属于行为式图形子集合,强调系统模型中资料流程。

结构式图形

  • 静态图(类图、对象图、包图)
  • 实现图(组件图、部署图)
  • 剖面图
  • 复合结构图

行为式图形

  • 活动图
  • 状态图
  • 用例图

交互式图形

  • 通信图
  • 交互概述图(UML2.0)
  • 时序图(UML2.0)
  • 时间图(UML2.0)

Class Diagram:用于表示类、接口、实例等之间相互的静态关系

理解泛化、实现

泛化关系 继承关系 记忆技巧

  • UML箭头方向:从子类指向父类
  • 提示:可能会认为子类是以父类为基础的,箭头应从父类指向子类从来没有这么想过记忆技巧-箭头方向UML 所以箭头方法从子类指向父类
    • 定义子类时需要通过extends关键字指向父类
    • 子类一定是知道父类定义的,但父类并不知道子类的定义
    • 只有知道对方信息时才能指向对方

      理解依赖、关联

      实线 -关联 | 虚线-依赖
      关联关系 实线

image.png

实现关系

  • 被一个类实现了 ,A类实现B接口 实现关系
  • 三角空心虚线

实现关系、继承关系
实线-继承 | 虚线-实现

  • 空心三角箭头:继承或实现
  • 实线-继承 ,is a 关系,扩展目的,不虚,很结实的。
  • 虚线-实现,虚线代表“虚”无实体。实现接口 实现接口方法

关联关系
image.png
依赖关系
image.png
实线 -关联 | 虚线-依赖
依赖关系 虚线

  • 虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无调用的时候才会用一下 虚线 依赖关系
  • 表示一种使用关系,一个类需要借助另一个类来实现功能
  • 一般是一个类使用另一个类做为参数使用,或作为返回值 参数 返回值

关系关系 实线

  • 实线-关联关系:关系稳定,实打实的关系,铁哥们。
  • 表示一个类对象和另一个类对象有关联
  • 通过是一个类中有另一个类对象做为属性 属性 一个成员变量

    理解聚合、组合

    空心菱形-聚合 | 实心菱形-组合

  • 菱形就是一个盛东西的器皿(例如盘子)

  • 聚合:代表空器皿里可以放很多相同的东西,聚在一起(箭头方向所指的类 个体
  • 组合:代表满器皿里已经有实体结构的存在,生死与共 强关系

整体与部分 可以离聚合 不可以离组合
image.png
组合关系
鸟和翅膀 人和头 强关系 相同的生命周期 你死我也死
image.png
数字?
空心菱形 聚合关系 记忆技巧

  • 整体和局部的关系,两者有着独立的生命周期,是has a的关系
  • 弱关系大雁群 has a 大雁
  • 消极的词:弱 - 空 空心菱形

实心菱形 组合关系 记忆技巧

  • 整体与局部的关系,和聚合的关系相比,关系更加强烈两者有相同的生命周期,contains-a的关系 包含
  • 强关系
  • 积极的词:强 - 满 实心菱形

image.png
常见数字表达及含义
一个鸟 两个翅膀

UML时序图

image.png
生命线 上到下 时间的流逝
方法调用
消息
image.png
类图 时序图 用例图 重要
时序图 调用关系

UML类图

类的表示
类名 抽象类 斜体表示 接口 <>
属性 行为
public + private - protected #
什么都不加 or ~ 是表示 default
+ max
-min private
# protected
image.png
记住这个类图
类图表示 要 准确 避免产生歧义