《设计模式就该这样学》笔记之一:puml画2.2节的时序图

最近买到一本书《设计模式就该这样学》,感觉这是我最满意的设计模式书,有理论,有实践,而且紧贴Java开发。
本书第二章讲UML,但是没有实现,干脆我就用puml给补充一下吧。
书的17页列举了常见的片段结构,重点介绍了4种和一个稍微大点的例子,我们就分别来实现这4个。

1.抉择

抉择alt就是二选一的意思。

@startuml

alt money>2500

客户 -> 取款机:  取款请求
取款机-> 客户:一次不能取太多
else else
客户 -> 取款机:  取款请求
取款机-> 银行:取款请求
银行--> 取款机: 请求结果
取款机-->客户: 请求结果

end
@enduml

效果图:
《设计模式就该这样学》笔记之一:puml画2.2节的时序图_第1张图片

2.选项opt

就是可能发生也可能不发生的意思

@startuml
opt money>2500

客户 -> 取款机:  取款请求
取款机-> 银行:取款请求
银行--> 取款机: 请求结果
取款机-->客户: 请求结果

end
@enduml

效果图:
《设计模式就该这样学》笔记之一:puml画2.2节的时序图_第2张图片

3.循环

就是一个片段可以重复多次

@startuml
loop  每周一
员工 -> 主管: 汇报工作
主管-->员工:安排工作
end
@enduml

效果图:
《设计模式就该这样学》笔记之一:puml画2.2节的时序图_第3张图片

4.并行

就是里面的事件是可以并行交错的,相当于多线程


@startuml

顾客 -> 厨师:  点菜
par
 厨师->厨师:炒菜
 厨师->厨师:做汤
end
厨师->顾客:上菜

@enduml

效果图:
《设计模式就该这样学》笔记之一:puml画2.2节的时序图_第4张图片

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

《设计模式就该这样学》笔记之一:puml画2.2节的时序图_第5张图片

你可能感兴趣的:(JavaEE,Java,设计模式)