为啥要学UML
兵法有云:"不谋万世者,不足谋一时;不谋全局者,不足谋一域。"
实现新项目或者熟悉老项目,一开始千万不能傻呆呆的一行一行看代码,要以战略的眼光分析项目,掌握重点类的逻辑关系,理清项目的业务流程。
如何才能快速分析项目,理解项目架构呢?
答案就是:UML图。
UML类图
UML类图使用连线指明类和类、类和接口、接口和接口之间存在的关系。
泛化(Generalization)
空心三角形 + 实线。用来描述继承关系,在 Java 中使用 extends 关键字。
实现(Realization)
空心三角形 + 虚线。用来实现一个接口,在 Java 中使用 implements 关键字。
聚合 (Aggregation)
空心菱形 + 实线。表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。
(不要问我为什么锅碗瓢盆 少了瓢)
组合 (Composition)
实心菱形 + 实线。组合中整体和部分是强依赖的,整体不存在了部分也不存在了。
关联 (Association)
实线箭头。表示不同类对象之间有关联。
依赖 (Dependency)
虚线箭头。和关联关系不同的是,依赖关系是在运行过程中起作用的。
- A 类是 B 类中的(某中方法的)局部变量;
- A 类是 B 类方法当中的一个参数;
- A 类向 B 类发送消息,从而影响 B 类发生变化;
good Tips
UML在线绘图:www.planttext.com/