定义

时序图用于描述系统中对象(或组件)之间的交互顺序,展示它们在时间维度上如何发送消息、调用方法、返回结果。
它回答的问题是:
“系统在运行时,不同对象之间是如何协作完成某个功能的?”

核心组成元素(结合实际)

UML术语
解释
Android / Java 实际例子
Lifeline(生命线)
表示一个对象/组件在交互过程中的存在。
Activity、ViewModel、Repository、API Service 等。
Activation(激活条)
表示对象正在执行某个操作(即方法被调用时)。
调用了 fetchUser() 方法期间。
Message(消息)
表示对象间的调用或返回。
viewModel.getUser() 调用了 repository.getUserFromApi()。
Synchronous message(同步消息)
调用必须等待返回。
普通函数调用。
Asynchronous message(异步消息)
调用后不等待结果(常见于回调、协程、线程)。
CoroutineScope.launch {} 或 Retrofit.enqueue()。
Return message(返回消息)
从被调用者返回给调用者的结果。
API 返回的用户信息。

基础示例(Mermaid 时序图)

我们用一个常见的 Android 场景:用户点击按钮 → ViewModel 请求数据 → Repository 调用 API → 返回结果 → 更新 UI

文字描述流程

  1. 用户点击“加载用户信息”按钮。
  1. Activity 通知 ViewModel。
  1. ViewModel 调用 Repository 获取用户数据。
  1. Repository 调用 ApiService(Retrofit)发起请求。
  1. ApiService 返回 User 对象。
  1. 数据通过 ViewModel 返回给 Activity,UI 更新。

Mermaid 代码示例

  • 说明:
    • >> 表示 异步消息(不等待返回)
    • ->> 表示 返回消息
    • 也可以使用 > 表示同步调用(等待返回)

时序图的常见扩展

1️⃣ 循环(Loop)

当操作会多次重复执行时:

2️⃣ 条件(alt / opt)

条件执行:

3️⃣ 并发 / 异步请求(par)

并发请求多个 API:

结合 Android 架构思维(MVVM)

场景说明

功能: 用户点击按钮,从服务器获取用户资料并显示在界面上。
架构: MVVM(View + ViewModel + Repository + ApiService)

流程分解

  1. 用户在界面上点击“加载资料”按钮。
  1. Activity 调用 ViewModel.getUserProfile()。
  1. ViewModel 启动协程(或使用 LiveData/Flow)调用 Repository.getUserFromRemote()。
  1. Repository 调用 ApiService.getUser() 发起网络请求(Retrofit)。
  1. ApiService 返回用户数据 User。
  1. Repository 将数据传回 ViewModel。
  1. ViewModel 更新 LiveData/StateFlow。
  1. Activity 观察 LiveData/StateFlow 并更新 UI。

Mermaid UML 时序图


🧩 图解说明:

图中元素
实际意义
Android 对应实现
actor 用户
表示外部触发者(系统外部参与者)
用户操作界面
View (Activity/Fragment)
UI 层,触发事件、观察数据变化
调用 ViewModel 的函数
ViewModel
业务逻辑中枢,控制数据流向
调用 Repository,并发布结果到 LiveData
Repository
数据访问层,封装网络/数据库逻辑
调用 Retrofit 或 Room
ApiService
网络接口层
Retrofit 接口调用服务器 API
->>+ / -->>-
表示进入/退出激活状态
表示方法被调用和返回
LiveData / Flow 更新
响应式数据流
通知 View 更新

实际代码结构示例(辅助理解)


 
UML学习——状态图UML笔记——各种图示例