Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

書籍 Refactoring to Patterns | Generalization | Extract Composite

概要

Extract Compositeリファクタリングについて

使用する場面

2つ以上の似たクラスを保持している場合

対応方法

Compositeパターンを適用する。

利点と欠点

利点

・子の格納と処理の、重複を排除する
・子を処理するロジックのコミュニケーションを円滑にする

欠点

なし

手順

1.Compositeを作成し、どのような子を持つのか分かりやすい名前をつける

2.子コンテナ(階層のクラスが子のハンドリングに重複した証拠)にサブクラスを作らせる

3.子コンテナに、重複したコードを見つける。
似た処理のメソッドが一致しないならリネームする。
重複したメソッドにのために子のコレクションをフィールドの引き上げによって移動する。
メソッドの引き上げによって移動する。

4.3のステップを子コンテナにあるメソッド分繰り返す。

5.子コンテナの各クライアントを知るために、チェックする。

サンプル

サンプルはGoFデザインパターンCompositeパターン