有没有一些好的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();
}
}
我要补充的是,不仅有几百个类遵循这种模式,而且其中一些类实现了数百个命令。