最近买到一本书《设计模式就该这样学》,感觉这是我最满意的设计模式书,有理论,有实践,而且紧贴Java开发。
本书第二章讲UML,但是没有实现,干脆我就用puml给补充一下吧。
书的17页列举了常见的片段结构,重点介绍了4种和一个稍微大点的例子,我们就分别来实现这4个。
1.抉择
抉择alt就是二选一的意思。
@startuml
alt money>2500
客户 -> 取款机: 取款请求
取款机-> 客户:一次不能取太多
else else
客户 -> 取款机: 取款请求
取款机-> 银行:取款请求
银行--> 取款机: 请求结果
取款机-->客户: 请求结果
end
@enduml
效果图:
2.选项opt
就是可能发生也可能不发生的意思
@startuml
opt money>2500
客户 -> 取款机: 取款请求
取款机-> 银行:取款请求
银行--> 取款机: 请求结果
取款机-->客户: 请求结果
end
@enduml
效果图:
3.循环
就是一个片段可以重复多次
@startuml
loop 每周一
员工 -> 主管: 汇报工作
主管-->员工:安排工作
end
@enduml
效果图:
4.并行
就是里面的事件是可以并行交错的,相当于多线程
@startuml
顾客 -> 厨师: 点菜
par
厨师->厨师:炒菜
厨师->厨师:做汤
end
厨师->顾客:上菜
@enduml
效果图:
5.时序图应用实践
这个例子其实还是比较简单的。直接上代码。
@startuml
actor Actor
autonumber
Actor->Client:调用work()方法
Client-> Server: 调用open()方法
Server--> Client: 方法返回,无返回值
Client-> Server:调用print()方法
Server->Device:调用write()方法
Device-->Server:方法返回,无返回值
Client->Server:调用close()方法
Server-->Client:方法返回,无返回值
Client-->Actor:程序执行完毕
@enduml