读书人

过多的流程如何编写程序

发布时间: 2013-09-26 10:32:35 作者: rapoo

过多的流程,怎么编写程序?
比如有一个业务,先要完成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
{……
}



[解决办法]
你可以使用工作流的方式 或者使用任务编程,使用Task类来为每个业务创建一个任务,然后B任务在任务A完成时才发生,即调用Task.ContinueWith()方法
[解决办法]
朴素的写法:
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()
[解决办法]
职责链模式
http://blog.csdn.net/flyingfalcon/article/details/2310823
[解决办法]
引用:
Quote: 引用:

用一个顺序工作流就搞定了。

求解释

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

读书人网 >C#

热点推荐