比如有一个业务,先要完成A,再完成B,再完成C,再完成D。假设,每一步都是一个比较复杂的数据库的增删改。
每一步成功则返回1,失败返回0
那么在程序里,就是类似这写法int k=0;
k=ABLL.DoA;
k=BBLL.DoB;
k=CBLL.DoC;
k=DBLL.DoD;
……但是,在真实情况下,k=ABLL.DoA;之后,要判断K是否=1,是的话,才能执行下一步,否则就要报错给提示什么的。那么这样的话,程序写起来岂不是烦得要命?k=ABLL.DoA;
if (k==1)

    J=BBLL.DoB
    if(J==1)
    {
      ……
     }
    else
    {……}
}
else
{……
}

解决方案 »

  1.   

    你可以使用工作流的方式 或者使用任务编程,使用Task类来为每个业务创建一个任务,然后B任务在任务A完成时才发生,即调用Task.ContinueWith()方法
      

  2.   

    朴素的写法:
    b=a();
    if(!b) return;
    b=b();
    if(!b) return;
    ...集合的写法:
    foreach(ITask task in tasks) if(!task.Do()) return;暴力的写法:
    try{ a(); b(); c(); d();} catch{}
    a(){ if(...) throw... }装x的写法:return a() && b() && c() && d()
      

  3.   

    职责链模式
    http://blog.csdn.net/flyingfalcon/article/details/2310823
      

  4.   

    求解释
    把什么doa dob doc之类的做成Activty,然后建一个WF的Sequence Workflow,把这些Activty拖进来,返回0就跳到最后。分分钟就搞定。
      

  5.   

    求解释
    把什么doa dob doc之类的做成Activty,然后建一个WF的Sequence Workflow,把这些Activty拖进来,返回0就跳到最后。分分钟就搞定。
    没研究过WF,原理如此强大了啊!