如何重构下面的代码,其中包含许多if,每个块包含不同的场景。
if(condition1)
{
ConfigCondition1();
GetSetCondition1Results();
}
if(condition2)
{
ConfigCondition2();
GetSetCondition2Results();
}
if(condition3)
{
ConfigCondition3();
GetSetCondition3Results();
}发布于 2011-12-28 17:56:24
通过使用Strategy Design Pattern。
策略模式将算法封装在对象中,并帮助您将条件语句重构为简单的函数调用。
您可以使用的Here is a nice example in .NET。
发布于 2011-12-28 17:55:56
Strategy pattern似乎最适合您的问题。
使用策略模式,客户端可以从一组已实现的算法中选择将在运行时执行的算法。
发布于 2011-12-28 18:22:26
遵循以下指导原则。
if语句都与相同的值进行比较?如果是,请使用switch数据块if数据块排除了其他数据块?如果是,是否使用一个块的else if.https://stackoverflow.com/questions/8654294
复制相似问题