以下のような大規模なリファクタリング プロジェクトを処理できる優れた 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();
}
}
このパターンに従うおそらく数百のクラスがあるだけでなく、そのうちのいくつかは数百のコマンドを実装していることを付け加えておきます。