`
ww2
  • 浏览: 400630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

工作流模式详解之流程控制模式(5)——Simple Merge

阅读更多

1. 理论模型

  根据我个人的臆想,Simple 有化繁为简的意味,因此取这一名字来表达其模式的含义。实际上是一个 XOR合并。

  

  XOR-join,这一模式就是只有一个分支接受,遵循先到先得的原则。只要 A 或 B 任何一个完成,那么 C 就执行。这里遗留了一个问题,如果前面是AND分支,那么剩下后执行的那个结点怎么办呢?这里涉及到了流程设计的实际应用问题,后面讲到其它 join 模式的时候,会更详细的讨论这一个问题。

2. 应用

  这个模式主要是为了应付前躯只有一个分支的流程,这个模式也是一个很常用的模式。在许多的流程图中,没有显式说明的一般都可以看作是 XOR-join,就是任意一个前躯完成,就触发下一个工作单元。

  一般的考虑情况是一种整体思维,这个模式有一个前提条件,就是"safe"。所谓的安全就是前面的流程必须保证 A、B 有且只有一个会执行。若考虑到 A 和 B 都有可能执行的情况下,那就不应该使用这种模式,譬如可用 Thread Merge 模式(这一模式会在后面讲述)。

3. 延伸

  到目前为止,我们所提到的5种模式已详细讲解完(Sequence、Parallel Split、Synchronization、Exclusive Choice、Simple Merge),这就是基本的流程控制模式。这几种模式作为工作流系统的基础而几乎每个工作流引擎都有直接支持。后面的两种模式应用没有涉及太多内容,因为要结合起来才能讲,基本工作流模式的组合应用则另外叙述。

  

分享到:
评论

相关推荐

    oracle merge 用法详解

    oracle merge 用法详解

    工作流模式简介(中文)

    工作流模式...............................................................................Pattern 5 简单聚合(Simple Merge).................................................................................4

    博客《ListView滑动删除实现之一——merge标签与LayoutInflater.inflate()》对应源码

    博客《ListView滑动删除实现之一——merge标签与LayoutInflater.inflate()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/45155965

    合并排序算法——merge sort

    void merge(int A[],int p,int q,int r);//合并排序算法 /************合并排序算法的实现******************/ int main() { int p,q,r; printf("合并排序算法的实现:\n"); printf("请输入p、q、r的值(输入...

    归并排序整体实现——merge-sort

    void merge_sort(int A[],int p,int r) { int q; if(p) { q=(p+r)/2;//计算q的值,即将问题拆分成两个子问题; merge_sort(A,p,q); //左半边递归调用merge_sort,缩小问题规模 printf("\n"); //print_A(A...

    merge用法详解

    无论你在使用任何DBMS,你总是难以避免的将会遇到上面提到的这种需求,如果你不使用merge语句,你将会不得不在程序中增加大段的代码,或者是在oracle用很长的代码来实现。好在现在我们有了merge,可以帮我们省下很多...

    Android抽象布局——include、merge 、ViewStub详解

    主要介绍了 Android抽象布局——include、merge 、ViewStub详解,详细的介绍了三种布局各有的优势,有兴趣的同学可以参考一下。

    Merge into的使用详解

    Merge into写法,含两种,带实例说明

    Sublime Merge——一款超好用的Git可视化工具

    一款超好用的Git可视化工具,资源是搬运的,为了方便大家学习使用。 有能力的可以支持下正版啦~

    Araxis Merge v6.5/Araxis Merge 2017比对工具

    Araxis Merge是一款比对软件工具,不仅支持单个文件的比对,而且支持对两个文件夹的所有文件进行对比,并实时修改。用了蛮久感觉很好用,所以分享给大家。 里面给大家内嵌了Araxis Merge v6.5和Araxis Merge 2017两...

    Git教程——merge 分支冲突

    文章目录1.merge 分支冲突 1.merge 分支冲突 今天的情况是这样, 想象不仅有人在做开发版 dev 的更新, 还有人在修改 master 中的一些 bug. 当我们再 merge dev 的时候, 冲突就来了. 因为 git 不知道应该怎么处理 ...

    详解Python3 pandas.merge用法

    这节主要对pandas合并数据集的merge函数进行详解。(用过SQL或其他关系型数据库的可能会对这个方法比较熟悉。)码字不易,喜欢请点赞!!! 1.merge函数的参数一览表 2.创建两个DataFrame 3.pd.merge()方法设置连接...

    merge的用法

    merge的用法

    merge01 merge 比较工具1

    merge 比较工具 merge 比较工具merge 比较工具

    Merge工具 win Merge

    免费Merge比较工具 win Merge

    Mysql合并表Merge引擎

    1.Merge(MRG_MyISAM)存储引擎类型允许你把许多结构相同的表合并为一个表。当从合并表中执行查询,从多个表返回的结果就像从一个表返回的结果一样。 2.要创建合并表的前提是每一个合并的表必须有同样的表定义(表结构...

    merge用法详解(实例详解)

    使用一条语句从一个或者多个数据源中完成对表的更新和插入数据,即某一表数据变化时另一个表数据也要发生变化,我们可以通过此语句来实现,旧数据更新,新数据则新增

    详解git merge命令应用的三种情景

    主要介绍了详解git merge命令应用的三种情景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    KaiwuDB 分布式系统 Range Split and Merge 原理详解.pdf

    KaiwuDB 分布式系统 Range Split and Merge 原理详解.pdf

Global site tag (gtag.js) - Google Analytics