看比较上规模的代码的时候,自己做的笔记都不太能很好地表述程序里面的一些主要信息,基本上是偏向于过程,但是对于类的描述不太到位,后面接触了UML仿佛打开了新世界,反反复复也有学习,不过这次打算去好好记录一下学习过程。这个角度主要是为了很快的用起来,记录一下用到什么软件,一些表达格式即可,因为暂时是作为一个辅助表达的工具而已啦(不过还是会嘴碎记录一下别的延伸的东西)。出于也是方便自己的目的,就是作为一个还算正式点的笔记罢(主要是逆向工程吧,想更好的表达代码记住当个索引)。
UML
- 这个就说一下,其实UML还是包括很多内容的,太正式的不太会说,也不敢说,毕竟入门者嘛,站的角度没那么高,还是要谦虚的。一般有以下的几种表达图方式,这里也可以参考看一下《大象-Thinking in UML》。下图参考自https://zhuanlan.zhihu.com/p/375129998。私以为像我这种小白,也就用得最多是类图吧。
UML类图
- 现有的很多网上资料还是说得不大清楚,就提概念,但没有立足于程序本身去描述对应的模式,这样导致了模式间的难以区分,从而表达就不太准确有效了,所以接下来会根据自己的理解尽量区分,做到解耦之间的概念(我才猜这也是使用本意把)。最好当然是结合程序来说明,但是有点麻烦,先挖个坑。
- 参考网址
- 这位老哥结合设计模式来讨论UML类图,带着代码,那就挺好的,和程杰的《大话数据结构》一样都不错。后续可以看看他关于设计模式的总结。不过这里的概念关于依赖、关联、聚合和组合的关系的举例不太清晰,看完仍然分不太清。
- 整体发现,网上很多资料都对于概念上的挺含糊的,表达得都有道理,不过对于实际程序表达中不好使用,因此以程杰的《大话数据结构》中的例子结合一些别的东西,形成一下的一个模式,去描述程序(重点还要简单简洁)。
- 个体
- 类
- 可见性:类名,属性,操作
- 属性-> 变量声明:类型
- 方法-> 方法声明(调用变量):类型
- 注:下划线为static属性
- 类
- 关系
- 泛化
- 具体类的继承
- 表达特点:实线白色三角箭头
- 实现
- 接口类的继承
- 特点:虚线
- 依赖
- 方法中调用关系
- 特点:虚线透明尖型箭头
- 关联
- 属性中包含关系
- 特点:实线透明尖型箭头(可以单向或双向)
- 聚合
- 整体与个体的相互关系
- 特点:实线白色菱形箭头
- 组合
- 个体与部分的相互关系
- 特点: 实线黑色菱形箭头
- 泛化
- 个体
补充
- 时序图