统一建模语言基础知识
统一建模语言(Unified Modeling Language,UML)是一种可视化的标准建模语言,他是一种分析和设计语言,通过UML可以构造软件系统的蓝图。
在设计模式中,需要使用UML来分析和设计每一个模式的结构,描述每一个模式实例,并对部分模式进行深入的解析。因此,在学习设计模式之前,需要先学习一些基本的UML知识。
UML介绍
UML已经成为面向对象软件分析与设计建模的标准,其应用越来越广泛,在学习设计模式之前需要掌握一些基本的UML知识,以便于理解每个模式和模式实例的结构,并通过一些UML图形来加深对设计模式的理解。
UML结构
UML是由图形符号表达的建模语言。其结构见下图
UML特点
- 工程化
- 规范化
- 可视化
- 系统化
- 文档化
- 智能化
类图
类图是使用频率最高的UML图之一。
类与类图
- 类是一组具有相同属性、表现相同行为的对象的抽象
- 类图用来描述不同类以及它们之间的关系
类之间的关系
- 关联关系(Association) 是类与类之间最常见的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间的联系。在UML类图中,用实线连接有关联的对象对应的类
- (1)双向关联
- (2)单向关联
- (3)自关联
- (4)多重性关联
- (5)聚合关系
- (6)组合关系
- 依赖关系(Dependency) 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另外一个事物时使用依赖关系。
大多数情况下,依赖关系体现在某一类的方法使用另一个类的对象作为参数。==在UML类图中,依赖关系用带箭头的虚线表示,由依赖一方指向被依赖一方。==
- 泛化关系(Generalization) 也就是继承关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类被称作派生类。
==在UML类图中,泛化关系用带空心三角形的直线来表示。指向父类==
- 接口与实现关系
==在UML类图中,类与接口之间的实现关系用带空心三角形的虚线来表示。指向接口==
类图实例
附加plantUML代码
1 | @startuml |
- 在RegisterForm中可以直接实例话UserDTO,因此他们之间可以使用组合关联
- 在RegisterForm中不能直接实例话IUserDAO的子类,可以针对接口编程,在通过注入的方式传入一个IUserDao接口的子类对象,因此RegisterForm和IUserDAO之间有聚合关系
顺序图
顺序图是最常用的系统动态建模工具之一,也是使用频率最高的交互图,他用于表示对象之间的动态交互,而且以图形化的方式描述了对象间消息传递的时间顺序。在设计模式中,我们将使用顺序图来描述某些模式中对象之间的交互关系
顺序图定义
顺序图(Sequence Diagram)是一种强调对象消息传递次序的交互图,又称为时序图或序列图
顺序图组成元素与绘画
在UML中,顺序图将交互关系表示为一个二维图,纵向是时间轴,时间沿竖线向下延伸;横向轴表示了在交互过程中的独立对象,对象的活动用生命线表示。顺序图由执行者(Actor)、生命线(Lifeline)、对象(Object)、激活框(Activation)和消息(Message)等元素组成。
顺序图实例
TODO
状态图
对于系统中哪些有多种状态的对象,状态图是一种常用的建模手段。状态图用于描述对象的各种状态以及状态之间的转换。在设计模式中,将使用状态图来描述某些模式中对象的状态及状态间和转换。
状态图定义
状态图(Statechart Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件。只有那些有重要交互行为的类,我们才会使用状态图来描述,一个状态图包括一系列的状态及状态之间的转移。
状态图组成元素与绘制
在UML中,包含如下组成元素: