toBeTheLight.github.io 荒原

阅读:《图解设计模式》0 引言部分

2018-12-27
toBeTheLight

本书首先对 GoF 23 种设计模式进行了全部讲解,并且对这些设计模式重新进行了分类。在这之前我们需要先了解些前置知识。

在本书的引言部分主要介绍了书中的术语和几种图示表示方法。

角色

术语部分一个比较重要的词语是角色,在书中它是指设计模式中出现的类、接口和实例在模式中起的作用。

在实际的 JavaScript 开发过程中,会对一个较大的文件进行拆分,将其中的函数拆分成几个子集(几个小的文件,或者归纳到一个对象中),这个时候就要考虑子集是否在扮演什么角色,还是仅仅是同类型函数的归纳。如果只是归纳,那么这个子集就不应该存在,这种单纯的归纳拆分方式只应该发生在代码复用的 utils 文件中。

UML

Unified Modeling Language

不会画图的架构师不是好厨子。

引言部分对类图和时序图做了详细介绍。我们不局限于书中内容,对几种常用的图(不限于 UML)进行简单介绍。

类图

结构图的一种,不因时间变化而发生变化的关系。

类图

在类图中,方块由类名、字段名、方法名组成,空三角实线箭头、空三角虚线箭头、菱形实线箭头等表示继承、实现、聚合等类间关系,下划线、斜体、各种符号表示静态、抽象、可见性等字段方法特征。

流程图

下图为基本流程图,我们常用的基本流程图其实是不属于 UML 的。

基本流程图

可以用来直观地描述单一系统或代码工作过程的具体步骤,一般用在开发设计的初始阶段用来梳理业务的整体逻辑或用来梳理某一块有限代码的逻辑。

泳道图

又叫做跨职能流程图,即在流程图的基础上增加了角色维度。可以将业务流程分配到不同的职能单位下,能展示所有涉及模块的交互,能直观感受特定泳道内的所有行为。 绘制时要注意涉及到了哪些职能单位,涉及到哪些阶段(在不同职能单位下的相同阶段要对齐,避免混乱难读)。

泳道图

时序图

时序图基本可以算是泳道图的升级版,同样有角色的维度,能完全表达系统各细节环节的最细小行为。不同之处在于其可以使用生命线(图示的竖直虚线)和控制焦点(生命线上的矩形)表示时间上的并行关系。

时序图


Content