Java言語で学ぶリファクタリング入門のメモ

1章:シンボリック定数によるマジックナンバーの置き換え

stab

2章:制御フラグの削除

3章:アサーションの導入

stab

4章:ヌルオブジェクトの導入

5章:メソッドの抽出

6章:クラスの抽出

7章:クラスによるタイプコードの置き換え

stab

8章:サブクラスによるタイプコードの置き換え

Replace Type Code with Subclasses

  • 手順
    • タイプコードに対応したサブクラスをつくる
      • タイプコードが表すフィールドを直接見せるのではなく、getterメソッドを介して見せる(自己カプセル化フィード)
      • タイプコードを元にインスタンスを作っているなら、FactoryMethodをつくる(FactoryMethodによるコンストラクタの置き換え)
      • タイプコードの値ごとにサブクラスを作る
      • コンパイルしてテストする
    • 不要なフィールドを削除する

9章:state/strategyによるタイプコードの置き換え

todo

10章:例外によるエラーコードの置き換え

stab

11章:Factory Methodによるコンストラクタの置き換え

  • 手順
    • FactoryMethodをつくる
    • コンストラクタを隠す
    • サブクラスによるタイプコードの置き換えを行う

12章:観察されるデータの複製(モデルとビューが混在していたら)

stab

13章:移譲による継承の置き換え

stab

14章:移譲の隠蔽

  • サーバクラスに移譲メソッドを作ることで、移譲しているという関係をクライアントクラスから隠すのが目的
  • 移譲の隠蔽:Hide Delegate
  • 情報の隠蔽:information hiding
  • (情報の隠蔽の逆)仲介人の除去:remove Middle Man
  • クラスのインライン化

15章:継承の分割

stab