什么是 Workflow 设计模式?

873 阅读2分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

Workflow System

我们将多个不同的处理模块连接在一起,最后得出一个自己需要结果的有向无环图(Directed Acyclic Graph/DAG),称为一个工作流系统Workflow System。

  1. 复制模式
  2. 过滤模式
  3. 分离模式
  4. 合并模式

在这里插入图片描述

复制模式(Copier Pattern)

复制模式通常是将单个数据处理模块中的数据,完整地复制到两个或更多的数据处理模墺中,然后再由不同的数据处理模块进行处理。 工作流系统图通常如下图所示。 复制模式

过滤模式( Filter Pattern)

过滤模式的作用是过滤掉不符合特定条件的数据。 在数据集通过了这个数据处理模块后,数据集会缩減到只剩下符合条件的数据。工作流系统图通常如下图所示。 过滤模式

分离模式( Splitter Pattern)

如果你在处理数据集时并不想丟弃里面的任何数据,而是想把数据分类为不同的类别来进行处理时,你就需要用到分离模式来处理数据。它的工作流系統图通常如下图所示。 分离模式

合并模式( Joiner Pattern)

合并模式会将多个不同的数据集转換集中到一起,成为一个总数据集,然后将这个总的数据集放在一个工作流中进行处理。 合并模式

实践

问题

在一个航空预定系统中,我们需要处理用户注册、购买机票和出行前24小时的提醒等功能。在这整个过程中,系统的数据处理运用了哪几个设计模式呢?

解答

1.注册

合并模式(因为注册渠道可能会有手机号注册、邮箱注册、微信注册等等不同的渠道,所以需要合并)

2.购买机票

过滤+合并(首先过滤出用户查找的航班机票信息、之后查找出符合条件的机票由于可能来自不同的渠道,所有需要合并后返回给用户)

3.提醒

复制+过滤+分离

  1. 过滤:根据时间、地点等因素过滤出需要给予提醒的用户and机票
  2. 复制:有可能需要对同一份数据(勾选多种提醒方式的用户)进行不同的处理(邮件通知or电话通知or短信通知)
  3. 分离:将前面过滤出的用户进行分成3组,分别对应(邮件通知+电话通知+短信通知)