概述

UML(Unified Modeling Language)统一建模语言,对于程序员来说接触比较多的就是类图了。在学习 UML 的时候没有好好学,导致后面许多别人画的类图看不懂,一些优秀的资料也看不懂,看到有 UML 的都会下意识的跳过,这样下去不行,所以回来学习 UML 相关知识。

类之间的关系

继承

继承表示的是某个东西是什么,例如:宝马是汽车。

Java 继承用 extends 来表示。

UML 中常用一个实线的空心箭头表示

实现

实现和继承类似,也是表示是什么的关系,通常会是抽象类。

Java 中实现用 implements 表示

UML 中常用一个虚线空心箭头表示

依赖

依赖表示某个对象在运行时需要用到另外一个对象。

在代码中通常作为函数的参数。

UML 中通常用虚线实心箭头表示,箭头指向被依赖者

关联

关联关系表示两个对象之间的关系,一个对象知道另一个,而且状态的变化不会影响到另一个。

在代码中通常以成员变量的形式存在。

UML 中通常用实线实心箭头表示,箭头指向被依赖者

聚合

聚合表示的是整体和部分的关系,但是部分可以脱离整体而独立存在。不是强依赖关系。

在代码中通常以成员变量的形式存在。

UML 中通常用实线空心菱形箭头表示,菱形指向整体

组合

组合表示的是整体包含部分的关系,也就是部分不能脱离整体而独立存在,整体不存在了部分也不存在,是一种强依赖的关系。

组合在代码中通常以成员变量的形式存在。

UML 中通常用实线实心菱形箭头表示,菱形指向整体

总结

UML 类图的知识点不多,但是比较容易搞混,图形长得特别像。这就导致了学习起来容易忘记,看到的时候会下意识的跳过不看。这样你会错过一个从整体去考虑事物的一个方法,你会花更多的时间和精力在这个地方,所以还是有必要学习 UML 的相关知识。

学习 UML 非常容易搞混,建议隔几天复习一次,这样慢慢记住并且强化。碰到一些开源库,可以自己画一画 UML 类图,这样可以加深印象。不要因为工作中用不到就不去学习这个强有力的工具。

参考