工具篇
曾经信心满满的立过很多flag,要学习并掌握某一领域或坚持某件事儿,最终都无疾而终,只剩下零星概念和一堆遗憾,原因大都类似:
- 计划被其它事情打断,中止了
- 进行到一半,发现意义不大
- 进行中遇到了困难,放弃了
- 当时掌握了,但没有及时总结,后续没有练习,忘记了
包括不限于协议栈、数据库、JVM、正则表达式、音律、写总结……也包括设计模式。结果一回头,猛然发现时间已经过去了这么久,却什么都没有留下来。
在此再立一个flag,每周写一篇总结。周积跬步,以致千里。
UML
统一建模语言 (Unified Modeling Language, UML)
所有介绍设计模式的资料都会用到uml图。之前总以为UML图就是类图,每次都是被继承,实现里面的实线、虚线、箭头等给整懵了。然后就放弃看图,只看代码实现。
现在才知道,类图只是UML中的一小部分。UML图还包括用例图,时序图等。和SE等大佬交流时,设计文档里全是各种UML图。
PlantUML
各种工具都可以画UML图,包括visio,Visual Paradigm等。我们使用PlantUML, 像Markdown一样,通过简单的语句写UML图,使用方便。当然,这一套工具也都是免费的。
windows安装
- PlantUML
PlantUML有IntelliJ IDEA的插件版,可以直接在IDEA的plugins中下载安装。我们也使用这个版本。
插件装好之后,新建puml文件,直接打开就可以看到对应的编辑器了。
- Graphviz
安装插件之后,也可能无法看到右边的预览图,而是提示报错,这是因为缺少Graphviz环境变量。Graphviz是一个开源的绘图软件,很多开源软件生成可视化图时都使用Graphviz。
下载Graphviz并安装后,配置如下环境变量之后就好了。
GRAPHVIZ_DOT=D:\Program Files (x86)\Graphviz2.38\bin\dot.exe
PlantUML基本语法
- 泛化,Generalization
- 关联,Association
- 组合,Composition
- 聚合,Aggregation
- 实现,Realization
- 依赖,Dependency
@startuml
Class01 <|-- Class02:泛化
Class03 <-- Class04:关联
Class05 *-- Class06:组合
Class07 o-- Class08:聚合
Class09 <|.. Class10:实现
Class11 <.. Class12:依赖
@enduml