C# 重构ifs

C# 重构ifs,c#,refactoring,C#,Refactoring,我如何重构下面的代码,其中包含许多ifs,每个块包含不同的场景 if(condition1) { ConfigCondition1(); GetSetCondition1Results(); } if(condition2) { ConfigCondition2(); GetSetCondition2Results(); } if(condition3) { ConfigCondition3(); GetSetCondition3Results(); } 似乎最适合你的

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

if(condition1)
{
  ConfigCondition1();
  GetSetCondition1Results();
}
if(condition2)
{
  ConfigCondition2();
  GetSetCondition2Results();
}
if(condition3)
{
  ConfigCondition3();
  GetSetCondition3Results();
}
似乎最适合你的问题

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

使用

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

您可以使用的。

遵循此指南

  • 所有
    if
    语句是否与相同的值进行比较?如果是,使用
    开关
  • 一个
    if
    块是否排除了其他块?如果是,请在时使用
    else
  • 一个块是否依赖于另一个块的值?如果是的话,把它们一个套在另一个里面
  • 如果上述任何一项都不存在,即不管怎样,都必须检查所有块,那么就不能再进行优化

为什么要重构它?我可能会使用switch语句为什么要重构它,以及以何种方式重构?我现在的答案是用例(但我想这不会有多大帮助),多态性可能是答案,但我们不知道您正在做什么,以及您试图实现什么。此代码是什么上下文的一部分?可能是您可以使用字典类型来存储条件,并根据条件获取已分配了相关方法的操作委托并执行它。