IntelliJ IDEA 2020.3 ヘルプ

仲介人の除去

仲介人の除去リファクタリングでは、クラス内の委譲メソッドへのすべての呼び出しを、同等の呼び出しを直接委譲されたフィールドに置き換えることができます。さらに、メソッドを委譲するクラスを自動的に削除することができます。これは現在は使用されません。

このリファクタリングは、クラスのメソッド呼び出しの多くを他のクラスのオブジェクトに転送するだけで、デザインを簡素化したい場合に便利です。

  1. 問題のクラスをエディターで開き、デリゲートフィールドの名前にキャレットを配置します。

  2. メインまたはコンテキストメニューで、リファクタリング | 仲介人の除去を選択します。

  3. 表示されたダイアログで、インライン化するメソッドを選択します。

    Remove middleman
    変更をプレビューして適用します

public class Foo { Bar bar; public Foo getImpValue() { return bar.getImpValue(); } } public class Bar { private Foo impValue1; public Bar(Foo impValue) { impValue1 = impValue; } public Foo getImpValue() { return impValue1; } } public class Client { Foo a; Foo impValue = a.getImpValue(); }
public class Foo { Bar bar; public Bar getbar() { return bar; } } public class Bar { private Foo impValue1; public Bar(Foo impValue) { impValue1 = impValue; } public Foo getImpValue(){ return impValue1; } } public class Client { Foo a; Foo impValue = a.getbar().getImpValue(); }

関連ページ:

UML クラス図

IntelliJ IDEA を使用すると、プロジェクトのパッケージにダイアグラムを生成できます。このような図は、アプリケーションの実際のクラスとメソッドの構造を常に反映しています。パッケージの図を表示するプロジェクトツールウィンドウで、ダイアグラムを作成するパッケージを右クリックし、()を選択します。表示されるリストで、Java クラス図を選択します。IntelliJ IDEA は、クラスとその依存関係の UML ダイアグラムを生成します。VCS ローカルの変更を図として表示できます。を選択...

コードリファクタリング

リファクタリングは、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定した dry に保ち、保守を容易にできます。リファクタリングの呼び出し:リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。選択可能なリファクタリングのリストを開くには、を押します。または、特定のリファクタリング用のキーボードショートカットを使用することもできます。リファクタリングを元に戻す必要...

メンバーのプルアップ

メンバーのプルアップリファクタリングでは、2 つのクラスが同じフィールドを持つ場合はフィールドを移動し、サブクラスには同様の作業を行うメソッドがある場合はメソッドを移動します。これは、重複したコードを取り除くのに役立ちます。また、クラスメンバーをスーパークラスまたはインターフェースに移動することも、インターフェースをスーパーインターフェースに移動することもできます。メンバーのプッシュダウンリファクタリングでは、クラスメンバーをサブクラスまたはサブインターフェースに移動することによって、クラス階層...

名前の変更リファクタリング

名前の変更リファクタリングを使用して、コード全体でシンボル、ファイル、ディレクトリ、パッケージ、モジュール、それらへのすべての参照の名前を変更します。限定されたスコープだけが影響を受けるため、ローカル変数またはプライベートメソッドの名前変更はインラインで簡単に行うことができます。クラスやパブリックメソッドの名前を変更すると、多くのファイルに影響を与える可能性があります。リファクタリングする前に、潜在的な変更をプレビューします。インターフェースで宣言されているメソッドの名前を変更すると、それらの実...