《Java 设计模式精讲》笔记——第2章 UML 急速入门

声明:

本博客是本人在学习《Java 设计模式精讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。

本博客已标明出处,如有侵权请告知,马上删除。

1. UML 定义

  • 统一建模语言(英文:Unified Modeling Language,缩写 UML)
  • 非专利的第三代建模和规约语言

2. UML 特点

  • UML 是一种开发的方法

  • 用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开发方法。

  • UML 展现了一系列最佳工程实践

    这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效

3. UML2.2 分类

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

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

结构式图形:

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

行为式图形:

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

交互式图形:

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

4. UML 类图

  • Class Diagram:用于表示类、接口、实例等之间相互的静态关系
  • 虽然名字叫类图,但类图中并不只是类,包括权限、属性、方法等等

4.1 箭头方向

UML 箭头方向:从子类指向父类

4.2 实线-继承|虚线-实现

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

  • 整体与局部的关系,和聚合的关系相比,关系更加强烈

    两者有相同的生命周期,contains-a 的关系

  • 强关系

  • 积极的词:强 - 满

常见数字表达及含义,假设有 A 类和 B 类,数字标记在 A 类侧:

  • 0…1: 0 或 1 个实例
  • 0…*: 0 或多个实例
  • 1…1: 1 个实例
  • 1: 只能有 1 个实例
  • 1…*: 至少有 1 个实例

5. UML 时序图

  • Sequence Diagram:是显示对象之间交互的图,这些对象是按时间顺序排列的
  • 时序图中包括的建模元素主要有∶
    • 对象(Actor)
    • 生命线(Lifeline)
    • 控制焦点(Focus of control)
    • 消息(Message)

在这里插入图片描述

6. UML 类图讲解

在这里插入图片描述

UML 类图分为三个部分:

  • 类的名称
    • 普通类:GeelyClass
    • 抽象类(斜体表示):GeelyClass
    • 接口(尖括号表示):<< interface >>
  • 类的属性,属性前的符号表示访问修饰符
    • +:public
    • -:private
    • #:protected
    • ~:default
    • 下划线:static
  • 类的行为

7. UML 类图讲解-自上而下

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bm1998/article/details/112847589