写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

我们将多个不同的处理模块连接在一起,最后得出一个自己需要结果的有向无环图(Directed Acyclic Graph/DAG),称为一个工作流系统Workflow System。1. 复制模式
2. 过滤模式
3. 分离模式
4. 合并模式

补充

复制模式(Copier Pattern)

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

过滤模式( Filter Pattern)

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

分离模式( Splitter Pattern)

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

合并模式( Joiner Pattern)

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

实践

问题

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

解答

1.注册:合并模式(因为注册渠道可能会有手机号注册、邮箱注册、微信注册等等不同的渠道,所以需要合并)
2.购买机票:过滤+合并(首先过滤出用户查找的航班机票信息、之后查找出符合条件的机票由于可能来自不同的渠道,所有需要合并后返回给用户)
3.提醒:复制+过滤+分离
过滤:根据时间、地点等因素过滤出需要给予提醒的用户and机票
复制:有可能需要对同一份数据(勾选多种提醒方式的用户)进行不同的处理(邮件通知or电话通知or短信通知)
分离:将前面过滤出的用户进行分成3组,分别对应(邮件通知+电话通知+短信通知)

Workflow设计模式指的什么?相关推荐

  1. 设计模式笔记(1)---开篇(文章索引)

    概念 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案. 面向对象的设计模式描述了面向对象设计过程中,在特定场景下类与相互通讯的对象之间常见的组织关系. 设计模式与面向对象 面向对象设计模 ...

  2. javascript 设计模式_开发者都应该了解的7种JavaScript设计模式

    你好,欢迎收听极客视点. JavaScript 中的设计模式指的是一些可重用的解决方案,这些方案适用于编写 JavaScript Web 应用程序时常见的一些问题.最近,全栈开发人员德文(Deven) ...

  3. javascript设计模式_开发者都应该了解的7种JavaScript设计模式

    你好,欢迎收听极客视点. JavaScript 中的设计模式指的是一些可重用的解决方案,这些方案适用于编写 JavaScript Web 应用程序时常见的一些问题.最近,全栈开发人员德文(Deven) ...

  4. 设计模式Part1——设计模式概述

    一丶设计模式的诞生与发展 1:设计模式的诞生 模式(Pattern)本诞生于建筑业,美国加利福尼亚大学环境结构中心研究所长Christophere Alexander用了20年的事件,对舒适住宅和周边 ...

  5. 说说System Workflow和Human Workflow

    了解了.Net Framework 3.0中的WF,大家一定都知道了System workflow和Human workflow这两个概念.从名字上就看的出来,Systemworkflow指的是把应用 ...

  6. 三层架构 业务逻辑层 workflow

    三层架构: 用户界面层 user interface layer 业务逻辑层 business logic layer 数据访问层 data access layer 系统的主要功能和业务逻辑都在业务 ...

  7. Java的23设计模式学习(课时一)单例模式

    第一模块:了解23设计模式的概述. 目录 第一模块:了解23设计模式的概述. 1 什么是设计模式: 2 学习设计模式的意义: 3 GoF23设计模式指哪些:每种模式体现每一种解决问题的思想能力< ...

  8. java常用的的集中设计模式

    1.单例设计模式所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生.具体实现步骤如下:(1) 将采用单例设计模式的类的构造方法私有化( ...

  9. 常用设计模式 简单实例

    1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生.具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有 ...

最新文章

  1. form 中Enctype=multipart/form-data 的作用
  2. Android --- 快速将字符串定义到strings.xml文件的方法
  3. 使用a标签调用手机系统的一些小技巧(打电话、发短信)
  4. web安全-----CSRF漏洞
  5. 那些我曾经犯过的低级编程错误
  6. Python基础(函数)
  7. Java基础笔记(三)
  8. Atitit 常用的登录认证法 目录 2. 表单验证 1 3. OAuth 认证 1 4. Web票据模式验证 1 4.1. Token验证 1 4.2. Cookie-Session 认证 1
  9. java 插件开发教程_Eclipse插件开发的详细教程
  10. 生成式对抗网络(GAN)相关问题汇总(较全面)
  11. mysql 备份 access_备份access数据库
  12. 远离僵尸网络的14种方法
  13. numpy的array_equal函数
  14. pwnable.kr第五题:passcode
  15. mac 13.0 自动关机设置
  16. Train for kirara 总结
  17. 好看的代码,千篇一律!难看的代码,卧槽卧槽~
  18. 电源的电流大会烧毁电流吗
  19. mysql SQLSTATE[HY000] [1045] Access denied for user
  20. 1-10-RHEL6.3-linux启动原理及各种故障案例分析(Red Hat Enterprise Linux Server6.3)@树袋飘零...

热门文章

  1. react函数组件 更新自动展示和暴露方法给父组件
  2. GIS 算法 之 拉默-道格拉斯-普克算法(ramer-douglas-peucker)
  3. [Linux] Ansible及playbook实操步骤
  4. 2020年flag立起来
  5. java 移动平均_EWMA之——EWMA指数加权移动平均模型的Java实现
  6. 项目规划管理 - 2
  7. buuctf——rot
  8. 区块链与数字货币之间的关系
  9. CCRC中国网络安全审查技术与认证中心 物联网安全技术工程师(ISTE)开课通知
  10. anaconda 创建虚拟环境报错