1. 理论模型
我觉得这个模型中文名字应该为"自然循环",可能更贴近其实际意图。
这个模式可以说不是针对直接"套现"的情况,主要是流程设计的过程中自然形成循环。而这种在绘制流程图时候所形成的自然循环,没有明确的循环入口或者出口。就如在编写程序上使用 goto 而形成的循环情况。
2. 应用
这个模式从纯模型的角度来说,属于 XOR-join、XOR-split 的不同组合。主要是业务需要而自然形成的循环,因此该模式可以说并非能在设计上主观套用所能达到。
譬如一个审批业务,若某一个审批人不通过,便返还给提出申请的人重新修改资料,这样多次往复直到结果满意为止。在电子政务的审批流程中非常的常见。
因为是自然形成的循环,所以这个模式界限较为模糊,没有明确的循环入口,也可能没有明确的循环出口,还有可能多个入口,多个出口。
3. 一点思考
在我的个人观点来说,这一种模式尽量少用。自然形成的循环具有开放性,在大部分的情况下(并非所有情况),并不算是一种成熟的考虑。尤其是这个流程之中夹杂着各种不同性质的 split,稍微推演一下就能发现这个模式在"重入"的时候,就需要考虑许多细节的问题。
除了一些需要紧密关联上下文的情况以外,若在流程设计中出现了这种模式,那也能从一个侧面反映设计者的思维过程:先斩后奏,或者换种说法是做了再算。在大部分的情况下,最好要有明确的循环入口点,已形成一个"有计划"的循环结构,如 (21)Structured Loop,和 (22)Recursion 这两个模式。
不过有时候使用这个模式能让流程的设计赏心悦目,那就不惮以最大的敬意使用这种模式。