执行一系列步骤的最佳设计模式
Best Design Pattern to execute a Series of Steps
我有一个应用程序,用户可以使用该应用程序启动(填写表格并单击 运行)一系列步骤。
首先必须执行第1步,然后执行第2步。如果第2步成功,则执行第3步,否则执行第4步。最后必须执行第5步。
每一步大约有 10 到 100 行代码。
为了实现这个逻辑,我应该使用哪种设计模式来构建我的代码?是责任链模式、模板方法模式还是其他什么?
一些方法调用和一个 if-else-statement 应该可以满足您的需求。
Step1();
if (Step2()) {
Step3();
} else {
Step4();
}
Step5();
只要让Step2
return一个布尔值就可以判断是否成功了。如果步骤2return有一些数据,你也可以returnnull
或者如果操作不成功的话一个空集合代替。
public bool Step2()
{
//do things
return <whether successful>;
}
这个简单易懂
当然,这些方法可以在不同的服务中实现,以更好地分离关注点。例如
_ui.ShowWaitCursor(); // Step 1.
var data = _fileService.GetData(); // Step 2.
if (data != null) { // Check success of step 2.
_dbService.WriteData(data); // Step 3.
} else {
_dbService.WriteDefaults(); // Step 4.
}
_ui.HideWaitCursor(); // Step 5.
另请参阅:Dependency injection (Wikipedia)。如果您正在寻找一种更好的方式来组织您的代码,这值得一看。
我有一个应用程序,用户可以使用该应用程序启动(填写表格并单击 运行)一系列步骤。
首先必须执行第1步,然后执行第2步。如果第2步成功,则执行第3步,否则执行第4步。最后必须执行第5步。
每一步大约有 10 到 100 行代码。
为了实现这个逻辑,我应该使用哪种设计模式来构建我的代码?是责任链模式、模板方法模式还是其他什么?
一些方法调用和一个 if-else-statement 应该可以满足您的需求。
Step1();
if (Step2()) {
Step3();
} else {
Step4();
}
Step5();
只要让Step2
return一个布尔值就可以判断是否成功了。如果步骤2return有一些数据,你也可以returnnull
或者如果操作不成功的话一个空集合代替。
public bool Step2()
{
//do things
return <whether successful>;
}
这个简单易懂
当然,这些方法可以在不同的服务中实现,以更好地分离关注点。例如
_ui.ShowWaitCursor(); // Step 1.
var data = _fileService.GetData(); // Step 2.
if (data != null) { // Check success of step 2.
_dbService.WriteData(data); // Step 3.
} else {
_dbService.WriteDefaults(); // Step 4.
}
_ui.HideWaitCursor(); // Step 5.
另请参阅:Dependency injection (Wikipedia)。如果您正在寻找一种更好的方式来组织您的代码,这值得一看。