技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

case: コードの重複【リファクタリング】

同一クラス内の複数メソッドでの重複

「メソッドの抽出」を適用し、各メソッドの内部で抽出したメソッドを呼ぶようにします。

メソッドの抽出【リファクタリング】 - 技術向上

兄弟クラス間の複数メソッドでの重複

両方のクラスで「メソッドの抽出」を行い、「メソッドの引き上げ」を適用します。
もしコードが完全に同じではない場合は、「メソッドの抽出」によって同じ部分と異なる部分を明確にした後、 「Template Methodの形成」を試みます。
また、同じ処理を異なるアルゴリズムで実装している場合は、同じアルゴリズムを採用するようにします。

メソッドの抽出【リファクタリング】 - 技術向上

メソッドの引き上げ【リファクタリング】 - 技術向上

Template Methodの形成【リファクタリング】 - 技術向上