1

クラス XXX を使用する大量の Java コードがあります。時間の経過とともに、クラスの意味が変化し、その名前は適切ではなくなりました。コードを読みやすくするために、クラスの名前を YYY に変更したいと思います。

1 つのオプションは、1 回のパスですべてのファイルを編集し、XXX を YYY に変更することですが、クラスの実際の名前は一意ではありません。同じ名前で異なるパッケージのクラスが他にもあるため、コードを確認する必要があります。 . いくつかの変更を加えて、それが正しいことをテストし、さらに変更してさらにテストしたいと考えています。この移行期間中、YYY と XXX を同じ意味で使用できるようにしたいと考えています。最終的には XXX を削除します。

私が必要としているのは、YYY と XXX のエイリアスを作成できる「エイリアス」の概念ですが、Java にはこれがありません。

すべて同じコンストラクターとメソッドを使用して、YYY を XXX のサブクラスにすることができます。変数が XXX として宣言されている場合は問題なく動作し、YYY 型の値を割り当てます。メソッド パラメーターが XXX の場合にも機能し、YYY を渡します。しかし、パラメーターが YYY と宣言されていて、送信する XXX 値がある場合、逆は機能しません。

XXX が YYY を拡張するように YYY を継承に挿入することもできますが、上記と同じ問題があります。XXX 宣言と YYY 値を混在させて使用するコードでは問題があります。

移行には数か月かかります。この間、私はパフォーマンスや効率性については気にしません。必要なのは、コンパイルしてテストするのに十分なほど正しく実行することだけです。 Java コードの本体でクラス名の増分変更を許可するためのベスト プラクティスに関する提案はありますか?

アップデート

以下の答えは、Java でこれを行う方法はありませんが、どちらかを行う理由もないはずです。その後、コードのインストールとリファクタリングを行い、その経験を次のブログ記事にまとめました: Don't Suffer Poor Names

4

1 に答える 1

3

Eclipseなどの IDEを使用し、そのリファクタリング ツールを使用してクラスの名前を変更します。これにより、使用されているすべての場所で自動的に変更され、インポートが更新されます。

于 2013-02-09T16:50:54.753 に答える