Inappropriate Intimacy
Inappropriate Intimacy(不適切な関係)
兆候と症状 別のクラスの内部フィールドとメソッドを使用するクラス。
問題の理由 一緒に行動することが多いクラスに注意してください。優れたクラスは、お互いのことをできる限り知らないようにする必要があります。このようなクラスは、保守と再利用が簡単です。
対処 最も簡単な解決策は、「Move Method」と「Move Field」を使用して、クラスの一部を、それを使用しているクラスに移動することです。しかし、これは移動前のクラスが本当にその部品を必要としない場合にのみ機能します。
- 別の解決策は、クラスに「Extract Class」と「Hide Delegate」を適用して、コードの関係を適切にすることです。
- クラスが相互に依存している場合は、「Change Bidirectional Association to Unidirectional」を適用する必要があります。
- この”親密性”がサブクラスとスーパークラスの間にある場合は、「Replace Delegation with Inheritance」を検討してください。
効果
- コード構成の改善
- コードの保守性を再利用性の向上
書籍としてはこの辺りが参考になると思います。
リファクタリング第2版
レガシーコード改善ガイド
