dis*_*kid 5 .net c# design-patterns
我正在编写一个控制台应用程序,它通过一个包含 N 步的算法。N在N+1执行步骤之前正确完成步骤很重要。否则程序应停止工作并显示错误消息。
我if当然可以使用嵌套语句来做到这一点并使用try-catch-finally(在 finally 中使用 continue 标志来决定程序是否应该处理)。但我正在寻找一种更好的结构化设计模式或方法来做到这一点。有什么建议吗?
责任链
http://www.codeproject.com/Articles/455228/Design-Patterns-3-of-3-Behavioral-Design-Patterns#Chain
或状态模式
http://www.codeproject.com/Articles/455228/Design-Patterns-3-of-3-Behavioral-Design-Patterns#State
可能是您问题的解决方案。
对于责任链模式,当您检测到错误时,您只需将“错误消息(处理)”流程设置为链中的下一个流程。
对于状态模式,需要在遇到错误时将状态更改为“Error”,并处理错误状态下的所有错误。
希望这会有所帮助。
我曾经创建了一个控制自动化的流程,并使用了包含所有步骤的枚举
enum AutomationStep{Requested, Started, Waiting, Processing, Terminating};
Run Code Online (Sandbox Code Playgroud)
后来我创建了一个 switch/case 来以不同的方式处理每个步骤
switch (currentStep)
{
case AutomationStep.Requested : InitializeProcess(); currentstep = AutomationStep.Started; break;
case AutomationStep.Started : StartTheEngines(); currentstep = AutomationStep.Waiting; break;
case AutomationStep.Waiting : //etc
break;
default:
}
Run Code Online (Sandbox Code Playgroud)
您稍后可以使用 While 来运行每个步骤