代码之家  ›  专栏  ›  技术社区  ›  dso

如何避免Windows工作流(WF)中的名称炎?

  •  1
  • dso  · 技术社区  · 15 年前

    我刚开始和WF合作,我觉得真正令人讨厌的是你必须说出 很多事情。在我看来,程序员每天要处理的最困难的事情之一就是为事物建立好的名称,而WF似乎将这一点发挥到了极致。

    以WF ifelse活动为例。如果我用原始C(不使用WF)对此进行编码,它看起来会像这样:

    if( x == 0 )
    {
        // ...
    }
    else if( x < 10 )
    {
        // ...
    }
    else if( x < 100 )
    {
        // ...
    }
    else
    {
        // ...
    }
    

    现在,上面的C代码简单明了。相反,如果我要定义一个使用ifelse活动执行相同操作的Windows工作流,首先 我得说出每一个if块的名字 : 例如

    • iFXISOALS0
    • 如果小于10
    • IFX100

    除此之外,我必须 命名每个条件 在每个if语句中: 例如

    • XEXALS0
    • X10
    • X100

    这不仅很冗长,而且很难维护(例如,如果条件发生变化),而且容易出错(当条件发生变化时,您忘记更改名称)。

    问题(据我所知)是,WF将每个编程构造分解为需要名称的工作流属性。

    既然我还在学习WF,我不想听起来像是无所不知…我想问问你们。我做错什么了吗?在创建WF工作流时,是否有避免此名称的方法?这是Windows WF特有的功能,还是其他工作流引擎也有同样的功能?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Kwal    15 年前

    问题(据我所知)是 WF会分解每个程序 构造到的属性 工作流,需要名称。

    实际上,需要使用不同名称的原因是,工作流中表示的if else语句的每个部分实际上都是单个ifelsbranchActivity,而不仅仅是工作流的属性,因此必须唯一命名。

    至于维护,请看一下使用规则集来帮助实际的布尔测试本身。这可能使以后修改更容易。