在SWF流程设计中包含子流程的优点

时间:2015-12-31 07:09:40

标签: spring-webflow

我可以使用或不使用子流设计SWF。任何人都可以解释在SWF中以子流方式设计流程的优点。请帮忙。

1 个答案:

答案 0 :(得分:0)

我认为主要的优点是流量的模块化(如果你正在重复使用流量),SRP原则,并且能够将控制权返还给主流"推动更大交易的流程。

最好用一个例子来解释。假设您正在运行使用SWF设计的假期预订网站。

假设你有流程定义:

主要流程的参与者和(3)

下的子流程
"book-vacation-flow.xml" 

可以作为子流引用的单个流

"book-plane-tickets-flow.xml"  (stand alone flow )
"book-hotel-flow.xml"          (stand alone flow )
"book-car-rental-flow.xml"     (stand alone flow )

您拥有代表用户可以购买的特定产品/交易的个人流程(即机票,酒店,汽车租赁),但您也有一个用例,用户希望将这些交易/流量合并到一个单一的"流" (即书籍休假)可能会使用所有3个流量。

因此book-vacation-flow.xml有自己的flow.xml定义来驱动"预订假期交易"但在其中你定义了(3)flow book-plane-tickets-flow.xml,book-hotel-flow.xml,book-car-rental-flow.xml作为子流定义。

此设置的优势让您可以重复使用"每个独立流作为独立流和子流。

如前所述,这样做的好处是关注点分离(SRP原则)和流程的重用能力。

还有其他一些注释:

  • 主流的一个非常好的功能< - >子流是通过 两者之间的完全pojos,而不必绑定或使用http参数。

  • 子流程不必是独立的流程,它们可以是私有的"至 主要来电流程,但我个人认为不值得使用 这种用例中的子流程。这只会导致混乱。只用一个 如果您计划在其他main中重用该子流功能,则为子流 流动。