首页
学习
活动
专区
圈层
工具
发布

重构ifs
EN

Stack Overflow用户
提问于 2011-12-28 17:53:10
回答 3查看 504关注 0票数 4

如何重构下面的代码,其中包含许多if,每个块包含不同的场景。

代码语言:javascript
复制
if(condition1)
{
  ConfigCondition1();
  GetSetCondition1Results();
}
if(condition2)
{
  ConfigCondition2();
  GetSetCondition2Results();
}
if(condition3)
{
  ConfigCondition3();
  GetSetCondition3Results();
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-28 17:56:24

通过使用Strategy Design Pattern

策略模式将算法封装在对象中,并帮助您将条件语句重构为简单的函数调用。

您可以使用的Here is a nice example in .NET

票数 4
EN

Stack Overflow用户

发布于 2011-12-28 17:55:56

Strategy pattern似乎最适合您的问题。

使用策略模式,客户端可以从一组已实现的算法中选择将在运行时执行的算法。

票数 2
EN

Stack Overflow用户

发布于 2011-12-28 18:22:26

遵循以下指导原则。

  • 是否将所有if语句都与相同的值进行比较?如果是,请使用switch数据块
  • 是否一个if数据块排除了其他数据块?如果是,是否使用一个块的else if.
  • Does取决于另一个块的值?如果是,则将它们嵌套在另一个块中。
  • 如果以上都不是,即无论如何都必须检查所有块,则不能再进行优化。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8654294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档