场景:
我有一些处理某种工作流程过程的某些步骤的方法。每个方法在对象中执行某些操作,并将同一对象传递给另一个方法。类似的东西:序列设计模式中的进程
void MethodA(SomeType obj)
{
// Some Process
MethodB(obj);
}
void MethodB(SomeType obj)
{
// Some Process
MethodC(obj);
}
void MethodC(SomeType obj)
{
// keep going...
}
并发症:
该系统的增长,我发现我需要把这种“的步骤队列”系统中的一些不同的地方。但是到了其他地方,几个步骤会改变,有些不能执行,需要执行新的步骤。一般来说,队列变化但步骤不变。
问题
有没有一种设计模式,让我建立单独的步骤只有加入他们的行列,当我需要运行?
而不是由方法调用下一个,有一个逻辑名称的包装方法调用它们按顺序而不是。基本上将工作从序列中分离出来。例如,'void DoSomeSequence(SomeType obj){MethodA(obj);方法b(OBJ); MethodC(OBJ); } void DoSomeOtherSequence(SomeType obj){MethodA(obj); MethodC(OBJ); MethodZ(OBJ); }'这样的事情会解决吗? –
你可能想看看命令模式。这是真正用于排序多个命令。很像其他例子/答案。 –
你重用队列吗? – michaelsnowden