Template Methodの形成【リファクタリング】
状況
- 異なるサブクラスの二つのメソッドが、類似の処理を同じ順序で実行しているが、各処理の内容は異なっている
例えば、処理順序や算出対象は同じでも、掛け合わせるレートが異なるなどです。
対処
メリット
コード量が削減される
新しい類似した種類の処理を追加するのに、部品となるスーパークラスのメソッドをオーバーライドするだけで済む
手順
メソッドを分解し、同一コードの部分、異なるコード部分に明確に分かれるよう、「メソッドの抽出」を行う
異なるメソッドは「メソッド名の変更」を適用して、各メソッドのシグニチャを同一にする
元のメソッドの一つに対して「メソッドの引き上げ」を適用する。処理の異なるメソッドは、そのシグニチャをスーパークラスに抽象メソッドとして定義する
コンパイルしてテストする
残りのメソッドについて、削除・コンパイルとテストを繰り返す
楽天ブックス: リファクタリング新装版 - 既存のコードを安全に改善する - マーチン・ファウラー - 9784274050190 : 本