Middle Man
兆候と症状 他クラスのメソッドを呼び出すだけのクラスがあるとしたら、そのクラスの存在意義は何でしょうか?
問題の理由 このCode Smellは、別のCode SmellであるMessage Chainsを熱心に排除した結果である可能性があります。
別の可能性としては、クラスの有用な処理が他のクラスに徐々に移動された結果である可能性があります。クラスは、委譲(delegate)以外の処理を行わない抜け殻として残存しています。
対処 クラスのメソッドが行っていることのほとんどが別のクラスへの処理の委譲(delegate)である場合、「Remove Middle Man」を行いましょう。
効果
- Less bulky code.
書籍としてはこの辺りが参考になると思います。
リファクタリング第2版
レガシーコード改善ガイド
