类图(Class Diagram)是面向对象设计中的一个常用且重要的建模图形。类图主要用来显示系统中的类、接口以及它们之间的关系,便于设计、分析应用程序和正向、逆向工程。
类图包含class(类)、abstract(抽象类)、interface(接口)、enum(枚举)、struct(结构体)等等元素。
类之间的关系:泛化、组合和聚合可以通过下表中的符号表示。其中组合关系和聚合关系较为接近,但又有区别。组合关系指的是将不同的元素或集合放在一起,形成一个新的系统(如翅膀、羽毛和大雁的关系),它具有特别的功能和性质。而聚合关系是指把一些具有不同特性的元素汇聚在一起,从而形成一个相对完整的结构的关系(如汽车和轮胎的关系)。
类之间还会存在数量上的关系,如1辆汽车有4个轮胎。关系如下图所示:
上图对应的代码如下:
@startuml Class Diagram
class Car{
-{field} wheel
}
Car "1" o-left- "4" Wheel
@enduml
上图展示了车和轮胎的一个数量关系。途中可以看出Wheel类没有定义属性和方法,但是两个空框还存在。Car类的method框也是。为了美观,我们可以通过hide等关键字隐藏这些空框。美化后的类图如下所示:
上图对应的代码如下:
@startuml Class Diagram
class Car{
-{field} wheel
}
Car "1" o-left- "4" Wheel
hide methods
hide Wheel fields
@enduml
下图是一个简单的实例: