前言
博主github
博主个人博客http://blog.healerjean.com
来源于自己买的一本书 图解设计模式 ,博主这里做了一份笔记记录
UML :统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言
1、类图
1、类与层次结构
1、三个框 依次是 类名、字段名、方法名
2、空心箭头表现了子类和父类之间的层次关系 ,子类指向父类
3、静态的属性(字段、方法)会加下划线
4、抽象的属性(类、方法)会以斜体的方式显示
[外链图片转存失败(img-M50pmEtM-1566550215181)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1558668339516.png)]
2、接口与实现
1、UML 以 <<interface>>
表示接口
2、虚线箭头表现了实现类和接口直接的关系,又子类指向父类
[外链图片转存失败(img-YTHEYsBE-1566550215182)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1558672174384.png)]
3、聚合
解释:我们将下面这种持有的关系成为聚合
1、将 带有空心◇菱形的实现表示聚合关系,从持有者指向被持有者
[外链图片转存失败(img-PYEB96Tv-1566550215183)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1558672542434.png)]
4、可见性(访问控制)
1、 +
表示public方法和字段
2、-
表示private方法和字段
3、#
表示protect方法和字段
4、~
表示 default方法和字段
[外链图片转存失败(img-DsYdC3N8-1566550215183)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1558672815903.png)]
5、类的关联
[外链图片转存失败(img-Vl8qlTaA-1566550215184)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1558673034009.png)]
2、时序图
类图表示的是静态关系,时序图表示的是随时间发生变化的动态行为,时序图的阅读顺序是沿着生命线从上而下阅读
1、最上方的三个长方形,冒号后面是类名
2、每个实例都有一条虚线,这个虚线叫生命线,可以理解为时间自上而下流失 ,虚线下面有个细长的长方形,表示实例处于某种活动中
3、黑色箭头表示调用,虚线箭头表示返回方法,有一些时序图会省略这个返回箭头
具体分析:
- Client实例调用Client:work
- Client:work 调用了Server:open方法
- Server:open调用完成返回
- Client:work 调用了Server:print方法
- Server:print 调用了Device:write方法
- Device:write 调用完成返回
- Server:print 调用完成返回
- Client:work方法调用Server:close
- Server:close 调用完成返回
- Client:work 调用结束