# UML的分类
先简单看一下UML图的分类。
# 结构型的图(Structure Diagram)
是一种偏静态类型的图
# 类图(Class Diagram)
用方框来表示类,用一些线来表示他们之间的关系。
# 对象图(Object Diagram)
对象是类的实例化,方便表示对象之间的关系。
# 构件图(Component Diagram)
构件图又叫组件图,主要描述一个系统的组成与关系。通常在服务器开发时使用。
# 部署图(Deployment Diagram)
部署图是用来描述系统如何部署、本系统与其他系统是怎样的一种关系。通常在服务器开发时使用。
# 包图(Package Diagram)
当类图很多的时候,可以将类放入包中,简化图。
# 行为型的图(Behavior Diagram)
是一种偏动态类型的图
# 活动图(Activity Diagram)
用圆边框表示一个“活动”,用箭头表示活动的先后顺序,类似于流程图。
# 状态机图(State Machine Diagram)
状态机图又叫做转态图,主要用于描述复杂的对象或者模块,内部不同状态的转化过程。
# 顺序图(Sequence Diagram)
可以描述系统的执行过程,常常用来表示系统中类、方法的调用过程。
# 通信图(Communication Diagram)
通信图是顺序图的另外一种画法。
# 用例图(Use Case Diagram)
用例图表达的是什么角色通过软件系统能做什么事情,通常用于软件开发的需求分析阶段。
# 时序图(Timing Diagram)
时序图又叫时间图,表示某东西的状态随时间变化而变化的图,用时间线的方式表示事务状态变化。
# UML类图之间的关系
类与类、接口之间的关系有六种。
# 泛化
泛化关系实际上就是继承关系,表示一般与特殊的关系,他指定子类如何特化父类的所有特征和行为。
表示方法:带三角箭头的实线,箭头指向父类
代码:
extends
# 接口与实现
是一种类与接口的关系,表示类时接口所有特征和行为的实现。
表示方法:带三角箭头的虚线,箭头指向接口。
代码表现:
implements
。
# 依赖(Dependency)
是一种使用关系,即一个类的实现需要另一个类的协助。但是需要的需要的那个类只是已局部变量存在,这就叫做依赖
- 表示方式:带普通箭头的虚线,指向被被依赖者。
# 关联(Association)
是一种拥有关系,它使一个类知道另一个类的属性和方法。有单向关联和双向关联。关联其实也需要另一个类去协助,主要区别就是需要的那个类是以成员变量的形式存在。
代码体现:成员变量
表示方式:单向关联用带普通箭头的实线,指向被拥有者;双向关联用实现表示。
# 聚合(Aggregation)
关联又可细化成聚合和组合。
是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
- 带空心菱形的实线,菱形指向整体
# 组合(Composition)
是整体与部分的关系,但部分不能离开整体而单独存在。
- 表示方式:带实心菱形的实线,菱形指向整体。
# 访问权限符号表示
Mark | Express |
---|---|
+ | public |
# | protected |
- | private |
~ | friendly |
# 常用的关键字
关键字 | Express |
---|---|
static | 下划线 |
abstract | 斜体 |
: | 成员类型或方法返回值 |
= | 默认值 |