是否有任何好的 Java 重构工具可以处理大型重构项目,例如下面的一个。显然,如果可能的话,我更喜欢免费的。
我正在处理一个遗留项目,其中大部分是在 Java 的早期构建的。有许多甚至数百个类使用旧式命令处理模式,例如:
public interface IFrom {
public static final String COMMAND1 = "Command1";
public static final String COMMAND2 = "Command2";
}
public class From {
public void doSomething(String command) {
if (command.equals(IFrom.COMMAND1)) {
doSomething1();
} else if (command.equals(IFrom.COMMAND2)) {
doSomething2();
}
}
private void doSomething1() {
System.out.println("Something-1");
}
private void doSomething2() {
System.out.println("Something-2");
}
}
变成更易于管理的东西,例如:
interface DoSomething {
public void doSomething();
}
enum ToCommands implements DoSomething {
Command1 {
@Override
public void doSomething() {
System.out.println("Something-1");
}
},
Command2 {
@Override
public void doSomething() {
System.out.println("Something-2");
}
};
}
public class To {
public void doSomething(String command) {
ToCommands.valueOf(command).doSomething();
}
}
我可能会补充一点,不仅可能有数百个类遵循这种模式,而且其中一些实现了数百个命令。