定义
时序图用于描述系统中对象(或组件)之间的交互顺序,展示它们在时间维度上如何发送消息、调用方法、返回结果。
它回答的问题是:
“系统在运行时,不同对象之间是如何协作完成某个功能的?”
核心组成元素(结合实际)
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
文字描述流程
- 用户点击“加载用户信息”按钮。
Activity通知ViewModel。
ViewModel调用Repository获取用户数据。
Repository调用ApiService(Retrofit)发起请求。
ApiService返回User对象。
- 数据通过
ViewModel返回给Activity,UI 更新。
Mermaid 代码示例
- 说明:
>>表示 异步消息(不等待返回)->>表示 返回消息- 也可以使用
>表示同步调用(等待返回)
时序图的常见扩展
1️⃣ 循环(Loop)
当操作会多次重复执行时:
2️⃣ 条件(alt / opt)
条件执行:
3️⃣ 并发 / 异步请求(par)
并发请求多个 API:
结合 Android 架构思维(MVVM)
场景说明
功能: 用户点击按钮,从服务器获取用户资料并显示在界面上。
架构: MVVM(View + ViewModel + Repository + ApiService)
流程分解
- 用户在界面上点击“加载资料”按钮。
Activity调用ViewModel.getUserProfile()。
ViewModel启动协程(或使用 LiveData/Flow)调用Repository.getUserFromRemote()。
Repository调用ApiService.getUser()发起网络请求(Retrofit)。
ApiService返回用户数据User。
Repository将数据传回ViewModel。
ViewModel更新 LiveData/StateFlow。
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 更新 |
实际代码结构示例(辅助理解)
- Author:CoderWdd
- URL:https://www.wuinsights.top//article/0b62470a-1f82-4b89-a0c4-6f248159f462
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts