再利用のためのメカニズム。継承からオブジェクトコンポジションへ。
\ |
クラス継承 (ホワイトボックス再利用) |
オブジェクトコンポジション (ブラックボックス再利用) |
---|---|---|
クラス図 | ||
利点 |
言語による直接的な支援がある。 実装方法を修正しやすい。 |
実行時に実装を動的に選択できる。 カプセル化の概念を壊さない。 各クラスの目的が明確になる。 |
欠点 |
柔軟性が無い。 親クラスの変更が子クラスの変更を強いる。 親クラスの実装の詳細が子クラスに明かされる。 再利用の過程で親クラスが肥大化しがち。 |
インタフェース設計に注意深さが要求される。 システムの振る舞いがわかりにくくなる。 |