【发布时间】:2019-01-07 06:29:00
【问题描述】:
我目前正在处理一个项目,我需要删除一个正在被其他不同类使用的类。在某些情况下,我可以删除由该类组成的一行代码,它永远不会影响程序的功能,但在某些情况下,您要删除的类位于 if 语句中。主要问题是,一旦我删除了包含该类的代码行,它在 if 语句中的位置,它将是一个空的 if 语句,这将违反声纳。
除了否定其中一个语句的条件之外,还有其他方法可以重构一个空的 if 语句吗?因为当我只是否定条件时,代码的可读性降低了。
例如:
if((example_A >= 0) && (condition_A))
{
removeThisClass();
}
else if((example_B >= )) && (condition_B))
{
doSomething();
}
else
{
doAnything();
}
重构:
if(!((example_A >= 0) && (condition_A)) && ((example_B >= )) && (condition_B)))
{
doSomething();
}
else
{
doAnything();
}
【问题讨论】:
-
重构代码中的
removeThisClass()在哪里? -
也许您可以考虑将条件移至私有方法。您是否要自动执行此任务以删除/重构?
-
大多数时候我们可以将
if(!((example_A >= 0) && (condition_A)) && ((example_B >= )) && (condition_B)))(重构语句)简化为更简单的东西。 -
在进行此类重构时,您应该依赖您的 IDE。 Eclipse 有一个“反向 if 语句”快速辅助,您可以在条件下使用“向下推否定”。见help.eclipse.org/mars/… 和veerasundar.com/blog/2012/10/eclipse-refactoring-on-steroids
标签: java if-statement refactoring readability