程序员画时序图,个人强烈推荐用PlantUML, 写起来方便,直观.
先写一个demo看下。
@startuml
-> CartFragment: 初始化页面
activate CartFragment
CartFragment -> OperaAdapter: 初始化适配器
activate OperaAdapter
CartFragment -> CartViewModel : 注册监听 getOperaTypeList()
activate CartViewModel
CartViewModel -> CartRepository : 注册监听getOperaTypeList()
activate CartRepository
CartRepository -> CartRepository :changeOperaTypeList()根据当前购物车状态,生成功能列表
CartViewModel <-- CartRepository: 回调返回数据
deactivate CartRepository
CartFragment <-- CartViewModel: 回调返回数据
deactivate CartViewModel
CartFragment -> OperaAdapter:setList() 设置数据源
CartFragment <- OperaAdapter: 点击某一项
deactivate OperaAdapter
CartFragment -> CartFragment : onSelected()
CartFragment -> OtherPage: 跳转显示其他页面
deactivate CartFragment
@enduml
看下效果图:
简单的使用:知道这几个简单使用 就可以快速的画出一个时序图了。
-
A->B :注释 直接调用
-
A-->B :注释 回调调用
-
A->A :注释 自己类内函数调用
-
activate A 开始一个周期
-
deactivate A 结束一个周期
高级的使用:分割线、角色、进出消息、参与对象、间隔控件、注释、线条颜色、 Box 使用等
-
title:title 购物车功能时序图\n
-
box 使用:
title 购物车功能时序图\n box "购物车页面" #LightBlue participant CartFragment participant OperaAdapter end box
-
间隔:
... 用户操作后 ...
-
note: note left 和 note right
CartRepository -> CartRepository :changeOperaTypeList() note left: 根据当前购物车状态,生成功能列表
- 其他功能是对高标准的时序图进行的个性化的处理。 暂时用不到。有兴趣可以参考PlantUML的语法文档。