【发布时间】:2015-08-21 20:42:23
【问题描述】:
场景:
我有一些方法可以处理一种工作流程过程的某些步骤。每个方法在一个对象中做某事并将同一个对象传递给另一个方法。类似的东西:
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); MethodB(obj); MethodC(obj); } void DoSomeOtherSequence(SomeType obj) { MethodA(obj); MethodC(obj); MethodZ(obj); }这样的事情行得通吗? -
您可能想查看命令模式。它的真正用途是对多个命令进行排序。已经很像其他示例/答案了。
-
你重复使用队列吗?
-
为什么要同时标记 Java 和 C#?
-
因为,它们都是 oop,都是 C 的降序,而且这不是真正的代码问题,只是 oop 和设计模式的问题。所以两者都适合。而且我的代码 sn-p 可以编译成两种语言。
标签: java c# oop design-patterns