継承よりコンポジションを好む

composition-over-inheritance.png

この文言はEffective Javaで初登場し、ヘッドファースト 頭とからだで覚えるデザインパターンの基本でも引用され、Wikipediaの項目にもなっている有名な文言。

概要

理想的には、再利用を実現するために、新たに部品を作りだす必要がないようにしておくべきである。
そして、既存の部品をオブジェクトコンポジションにより組み立てるだけで、必要とする機能をすべて得ることができるようにしておくべきである。
しかし、こういったケースはまれである。
なぜならば、実際には、すぐに利用可能な要求に合致した部品が、最初から十分に用意されているわけではないからである。
そこで、継承を使うことにより、既存の部品から要求に合致する部品を作成することになる。
このようにして、継承コンポジションの両方が使われるようになる。[5]

コンポジション


strategy

サポートサイト Wikidot.com strategy