3分钟读懂类图—UML类图详解

发现优秀的笔记会在我的博客摘抄一下 , 供复习用 。欢迎大家参观原文 , 原文链接:
【3分钟读懂类图—UML类图详解】UML类图是一种结构图 , 用于描述一个系统的静态结构 。类图以反映类结构和类之间关系为目的 , 用以描述软件系统的结构 , 是一种静态建模方法 。类图中的类 , 与面向对象语言中的类的概念是对应的 。
1. 类结构
在类的UML图中 , 使用长方形描述一个类的主要构成 , 长方形垂直地分为三层 , 以此放置类的名称、属性和方法 。
一般类的类名用正常字体粗体表示 , 如上图抽象类名用斜体字粗体 , 如User;接口则需在上方加上> 。
属性和方法都需要标注可见性符号 , +代表 , #代表 , -代表 。
另外 , 还可以用冒号:表明属性的类型和方法的返回类型 , 如+$name:、+(): 。当然 , 类型说明并非必须 。
2. 类关系
类与类之间的关系主要有六种:继承、实现、组合、聚合、关联和依赖 , 这六种关系的箭头表示如下 , 
3. 六种类关系
六种类关系中 , 组合、聚合、关联这三种类关系的代码结构一样 , 都是用属性来保存另一个类的引用 , 所以要通过内容间的关系来区别 。
3.1 继承
继承关系也称泛化关系() , 用于描述父类与子类之间的关系 。父类又称作基类 , 子类又称作派生类 。
继承关系中 , 子类继承父类的所有功能 , 父类所具有的属性、方法 , 子类应该都有 。子类中除了与父类一致的信息以外 , 还包括额外的信息 。
例如:公交车、出租车和小轿车都是汽车 , 他们都有名称 , 并且都能在路上行驶 。
3.2 实现
实现关系() , 主要用来规定接口和实现类的关系 。
接口(包括抽象类)是方法的集合 , 在实现关系中 , 类实现了接口 , 类中的方法实现了接口声明的所有方法 。
例如:汽车和轮船都是交通工具 , 而交通工具只是一个可移动工具的抽象概念 , 船和车实现了具体移动的功能 。
3.3 组合关系
组合关系():整体与部分的关系 , 但是整体与部分不可以分开 。
组合关系表示类之间整体与部分的关系 , 整体和部分有一致的生存期 。一旦整体对象不存在 , 部分对象也将不存在 , 是同生共死的关系 。
例如:人由头部和身体组成 , 两者不可分割 , 共同存在 。
3.4 聚合关系
聚合关系():整体和部分的关系 , 整体与部分可以分开 。
聚合关系也表示类之间整体与部分的关系 , 成员对象是整体对象的一部分 , 但是成员对象可以脱离整体对象独立存在 。
例如:公交车司机和工衣、工帽是整体与部分的关系 , 但是可以分开 , 工衣、工帽可以穿在别的司机身上 , 公交司机也可以穿别的工衣、工帽 。
3.5 关联关系
关联关系():表示一个类的属性保存了对另一个类的一个实例(或多个实例)的引用 。
关联关系是类与类之间最常用的一种关系 , 表示一类对象与另一类对象之间有联系 。组合、聚合也属于关联关系 , 只是关联关系的类间关系比其他两种要弱 。
关联关系有四种:双向关联、单向关联、自关联、多重数关联 。