zoukankan      html  css  js  c++  java
  • 工作流控制模式-迭代模式3种

    版权声明:工作流模式版权归 Workflow Patterns 组 织 ( http://www.workflowpatterns.com ) 所 有 。 经 Workflow Patterns授权,中文简体版由辛鹏和荣浩翻译。未经译者书面许可,不得将该中文简体版用于商业目的。

    在流程实例执行时,因为各种原因,我们需要重复执行一些活动或路径。迭代模式讨论流程 实例里的重复行为。

    迭代模式共有3种,如图A-47所示。

    图A-47 迭代模式

    1. 任意循环:能够在流程里建立有多个入口和出口的循环。
    2. 结构化循环:能够重复执行活动或子流程。循环只有一个单一的入口和出口。
    3. 递归:活动在执行时能够递归调用它自己。

    任意循环(WCP_10: Arbitrary Cycles)

    描述

    流程里的循环具有多个入口和出口。

    如图A-48所示,发文流程,如果有领导审批不通过,就返回上一活动重新修改,这样多次往 复修改直到领导满意为止。

    图A-48 任意循环

    同义词

    非结构化循环。

    应用

    该模式类似于程序里的“goto”,虽然很自然,但是给维护带来噩梦。在我们的项目里,当 用户第一次使用工作流系统进行流程建模时,最常见的情况就是任意循环大量出现,因为这种模 式最适合用户的自然思维,另一方面则是因为很多公司的流程人为干预太过严重,用户甚至要求 能够从任意活动回退到任意前续活动。我们建议这一模式尽量少用。

    结构化循环(WCP_21: Structured Loop)

    描述

    能够重复执行活动或子流程。循环只有单一的入口和出口。该模式有图A-49和图A-50所示的 两种形式。

    图A-49 结构化循环:while

    图A-50 结构化循环:do while

    前提条件

    同一时间只能有一个该循环的实例运行。

    应用
    重复的执行活动直至满足一定的条件为止。与任意循环模式相比,该模式更加贴合计算机语 言,也更加容易被工作流系统所支持。

    递归(WCP_22: Recursion)

    描述

    活动在执行时能够递归调用它自己。该模式反映出流程执行的层次性。

    如图A-51所示,每个月底,公司统一对所有出差费用进行报销,财务部门发起一个报销流程, 同时,作为对应,每个部门都发起一系列的报销活动,这些报销活动具体到每个项目团队,每个 团队也都执行一系列的报销活动,这样就构成了一个多层次的递归调用关系,这个层次关系是组 织管理层次的映射。

    图A-51 递归

    本文来源:http://www.cnblogs.com/x3d/,转载请注明。
  • 相关阅读:
    串口通信(2)
    串口通信(1)
    extern关键字的使用
    volatile关键字的使用
    Uart串口与RS232串口的区别
    DSP5509的时钟发生器(翻译总结自TI官方文档)
    DSP中的cmd文件
    pragma伪指令
    在C语言中嵌入汇编语言
    another app is currently holding the yum lock;waiting for it to exit...
  • 原文地址:https://www.cnblogs.com/x3d/p/15376685.html
Copyright © 2011-2022 走看看