TOP

リファクタリングとは何ですか?

説明

リファクタリング (Refactoring) – 外部の動作を変更せずに、理解しやすく、より迅速に変更できるようにするために、ソフトウェア (ソフトウェア) の内部構造に加えられる変更。また、これは、ソフトウェアの外部の動作を変更せずに、一連のリファクタリングを適用してソフトウェアを再構築することです。


リファクタリングの利点:

リファクタリングを行う必要がある場合:

コード内に異臭がする (Smells Catalog) :

可能なリファクタリング オプション

  1. Moving Features Between Objects (オブジェクト間の完全なコード転送):

    • Move Method (方法論は強調されていません) – メソッドが長すぎる場合、またはコメントに必要なコードが含まれている場合は、他のメソッドを分離します。
    • Move Field (移動フィールド) – フィールドが、定義された場所とは異なるクラスによって頻繁に使用される場合に実行されます。
  2. Organizing Data (データ構成):

    • Encapsulate Field (フィールドカプセル) - OOP 1 の主な原則はカプセル化です。つまり、データが公開されると、オブジェクトはデータ所有者に知られずにその値を読み取ったり変更したりできます。そのため、このようなフィールドは閉じられ、アクセス方法。
    • Encapsulate Collection (カプセル集め) - 教室にはオブジェクトのコレクションが存在することがよくありますが、このコレクションには配列、リスト、セット、またはベクトルを指定できます。これを行うと、ゲッター メソッドはコレクション オブジェクト自体を返す必要はありません。クライアントがコレクションを所有するクラスを知らなくても、コレクションの内容を変更できるため、メソッドによって返される値が読み取り専用になるように、要素を追加または削除するメソッドを作成する必要があります。は
  3. Composing Methods (抽出と結合のコード):

    • Extract Method (方法論は強調されていません) – コードの一部がグループ化できる場合、その部分はメソッドの目的を説明する名前に置き換えられます。そのため、コメントはメソッドの名前に置き換えられます。
    • Inline Method (方法論) – メソッドのメソッドをそれを呼び出すコードに移動すると便利かもしれません。また、メソッド本体がメソッド名そのものである場合もあります。また、構造が良くないため、さまざまなメソッドが存在します。それらすべてを 1 つの一般的な方法にまとめるか、別の方法で分割する方がよい場合があります。
    • Inline Temp (一時変数を挿入) - 単純な式が 1 回だけ割り当てられる一時的な置換。ありますありますありますありますあります
    • Replace Temp with Query (一時変数) – これは、式の値を格納するために一時変数が使用される場合に使用されます。この場合、式をメソッドに置き換え、コード内のこの変数へのすべての参照を新しいメソッドに置き換えます。
    • Split Temporary Variable (分割する一時変数) – 単一の一時変数を使用して複数の結果を異なる結果に割り当てる場合に適用されます (ループ内のループで使用される変数が結果の乗算に使用される変数ではない場合を除く)。その場合は、それぞれに個別の変数を作成します。割り当て。
  4. Simplifying Conditional Expressions (条件は簡略化の形式で使用されます):

    • Decompose Conditional (可以電影子の单用) – 一連のチェック条件 (if-then-else) は、条件がある場合に実行されます。 役割立って、方法論をよりよく理解するために、条件 (if)、then、else の一部を別のメソッドに置き換えます。対応するコード部分の目的を明確にします。
    • Consolidate Conditional Expression (これらの式のアニメーション) - 条件が多数ある場合、条件チェックを実行しても同じ結果が得られます。すべてのチェックを 1 つの条件式またはメソッドと組み合わせる必要があります。
    • Consolidate Duplicate Conditional Fragments (重複した条件フラグメントの統合) – すべての分割フェック式式に同じフラグメントが存在します。コードのこの部分を条件の外側に移動する必要があります。
    • Remove Control Flag (制御フラグは削除されました) – 制御フラグとして一連の論理式として機能する変数があります。代わりに BREAK または RETURN を使用します。
    • Replace Conditional with Polymorphism (可以電影子ををなれフィズズムにします) – オブジェクトの種類に依存する条件演算子がある場合、操作は実行されます。条件演算子は、各サブクラスのオーバーロードされたメソッドに移動する必要があります。ソース コードは抽象化されます。