モティオの開発備忘録

ITエンジニアとして働いています。

継承より委譲

スーパークラス依存による密結合を避けたい

継承より委譲

委譲とは...コンポジション構造にすること

利用したいクラスをスーパークラスとして継承するのではなく、privateなインスタンス変数として持ち、呼び出す

 

継承を使うとサブクラスがスーパークラスのロジックを使えるようになるため、スーパークラスが共通ロジックの置き場所として利用されがちになる。

継承で無理に共通化すると密結合になるパターンがある。

 

下手に継承を使わず、単一責任原則を重視することが肝要。

値オブジェクトやコンポジション構造で設計できないか検討する。