UML图是理解面向对象语言代码的利器。在开发中经常会使用到一些第三方库,在文档缺失的情况下,想快速了解代码结构,可以通过工具快速生成UML图来加速理解。
我常用的开发工具是android studio,它有一个插件叫做simpleUML,可以很方便的生成UML图。
理解UML
- uml图里面有6种关系,按照强弱排序是:
- 泛化(继承)= 实现 > 组合 > 聚合 > 关联 > 依赖
- 继承和实现比较好理解,对应java语言就是extends和implements。
- 组合、聚合都是关联的一种,代码层面表示就是成员变量,要区分它们只能从逻辑上来。
组合表示整体和部分的关系,这两者是不可分割的,例如鸽子和翅膀
聚合也表示整体和部分的关系,但是弱一些,两者可分离,例如鸽子和鸽群
关联是一种拥有关系,例如企鹅和气候
-
依赖是一种使用关系,代码层面就是局部变量、方法参数或静态方法
下面这张图描述了这6种关系