リファクタリング技法
ここではCode Smellを解消するために参考となるリファクタリング技法や、その他参考になりそうな概念を紹介していこうと思います。
リファクタリングに関してはこの辺りの書籍が参考になると思います。
リファクタリング第2版

レガシーコード改善ガイド

関連するリファクタリング技法
予備知識
委譲(delegate)
委譲と継承の違いはこれを見ればわかると思います。
- Javaによる委譲によるクラス継承とAdapterパターン例 ⇒「委譲によるクラス継承とは」のところ
※余談:転送と委譲について 正確に言うと、上で紹介したサイトで委譲と言っているのは厳密には「転送」と言います。コンポジット+転送です。でも世の中のほとんどの人はこの「転送」を委譲(delegate)と呼んでいます。
参考:
その他の委譲の参考
単一責任の原則
リスコフの置換原則
親子関係にあるクラス構造において、親が実現できていることは子でも必ず実現されてなければならない。という原則。
参考
- Java Generics Hell - リスコフの置換原則
- その7 親の決まりを子が破っちゃいけない原則 : LSP
- リスコフの置換原則とその違反を実例を踏まえて解説
- よくわかるSOLID原則3: L(リスコフの置換原則)
- リスコフの置換原則