UML类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
类图基本元素
类、接口、关系,只简单介绍一下这三种元素。
类
类是对具有相同属性和行为的对象,抽象出来的一种数据结构,是面向对象设计的核心结构。图示如下:
类名、属性、行为三部分组成。
- 类名格式:字符串
- 属性格式:可见性 名称:类型 [ = 缺省值 ]
- 行为格式:可见性 名称(参数列表) [ : 返回类型]
- 参数格式:类型 名称
- 可见性:表示元素对于类外的元素而言是否可见,包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
- 名称:标识名,用字符串表示。
- 类型/返回类型:表示数据类型,可以是基本数据类型,也可以是引用数据类型。
- 缺省值:是一个可选项,园所默认值。
- 参数:多个参数用逗号“,”分隔。
接口
描述行为的集合。图示如下:
接口名和操作两部分组成。
- 接口名格式:字符串
- 行为格式:名称(参数) [ : 返回类型]
- 参数格式:类型 名称
- 名称:标识名,用字符串表示。
- 返回类型:表示数据类型,可以是基本数据类型,也可以是引用数据类型。
- 参数:多个参数用逗号“,”分隔。
注:<<接口名>>中的尖括号不一定非要有。如实现关系就一种,接口的泛化关系只是标识行为没有属性。
关系
类图中的元素存在六种基本关系。分别是:实现,泛化,组合,聚合,关联和依赖。
类图元素的关系
实现(Realization)
表示类对接口的实现操作,类具有接口的所有行为。用带有空心三角箭头的虚线表示,箭头指向接口。 实线图示如下:
泛化(Generalization)
类或接口之间的继承,表示通用与具体的差异。用带有空心三角箭头的实线表示,箭头指向父类。图示如下:
组合(Composition)
整体与部分的关系,部分不能离开整体而单独存在。整体和部分生命周期一样,同生同死。用带有实心菱形的实线表示,菱形指向整体。图示如下:
聚合(Aggregation)
整体与部分的关系,部分可以离开整体而单独存在。整体对部分只是有使用权。整体和部分的生命周期是独立存在的。用带空心菱形的实心线表示,菱形指向整体。图示如下:
关联(Association)
同级类之间的引用,彼此不存在包含关系,引用者知道被引用者的属性和行为。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
用带普通箭头的实心线表示,箭头指向被引用者。图示如下:
依赖(Dependency)
一个类的实现依赖另一个类的数据。
带箭头的虚线,指向被使用者。图示如下:
总结
- 实现:类实现接口。
- 泛化:类或接口之间的继承。
- 组合:结构上整体和部分不能分开,生命周期一样,由整体维护。
- 聚合:结构上整体和部分能分开,各自维护自己的生命周期。
- 关联:类之间存在使用和被使用关系。
- 依赖:一个类用到另一个类的数据。
关系的强到弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。