クラスの抽出リファクタリング
このリファクタリングにより、既存のクラスのメンバーを新しいクラスに移動できます。 複数のタスクを担当する単一のクラスを、それぞれが単一の責任を持つ複数のクラスに置き換える必要がある場合に役立ちます。
JetBrains Rider は、新しく作成されたクラスにアクセスできる参照フィールドを自動的に作成します。 必要に応じて、元のクラスの抽出されたメンバーをコピーとして残すことも、実装が新しいクラスの同じメンバーに委譲されるようにすることもできます。
以下の例では、新しい Logger クラスに LogError メソッドを抽出します
選択したメンバーから新しいクラスを作成する
次のいずれかの方法で移動するクラスまたはメンバーを選択します。
エディターで、クラスまたはメンバーの名前にキャレットを置きます。
構造ウィンドウウィンドウでクラスまたはメンバーを選択します。
次のいずれかを実行します:
Ctrl+Alt+Shift+T を押し、を クラスの抽出 を選択します。
クラスの抽出 ダイアログが開きます。
新しいクラスの名前とその配置場所(新しいファイルまたは元の型と同じファイル)を指定します。
新しいクラスに移動するメンバーを選択します。 メンバーを選択すると、JetBrains Rider は、そのメンバーを使用している他のメンバーも抽出することを提案します。 提案されたメンバーは、緑色の 抽出 ラベルで識別できます。
この提案を受け入れる必要はありませんが、受け入れる場合は、 提案されたすべてのメンバーを抽出する をクリックしてすべてを選択できます。
選択したすべてのメンバーには、 ソース クラスメンバー 列にセレクターがあります。 メンバーを現在のクラスで直接使用できるようにする場合は、このセレクターをクリックして、メソッドとプロパティに デリゲートラッパーの作成 を選択するか、プロパティとフィールドに コピー作成 を選択します。
抽出しない他のメンバーが使用している非公開メンバーを抽出する場合、JetBrains Rider は、抽出したメンバーが非公開のままの場合、これらの使用箇所が機能しないことを警告します。 提案されたすべてのメンバーを抽出する をクリックして依存メンバーを選択するか、警告アイコンをクリックして、推奨される修正のいずれかを選択できます。

リファクタリングを適用するには、 次へ をクリックします。
競合するものが見つからない場合、JetBrains Rider はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。
