前の記事では、関数合成の力について語りました。 いいねの数からすれば、そこそこ興味を持ってもらっているようなので、 今回は、オブジェクトの合成の力について語ろうと思います。 オブジェクトデザインの二つのパターン Javaだろうが、C++だろうが、Javascriptだろうが、オブジェクトを作らないといけないときは絶対あります。 それぞれのオブジェクトは何を表すか、そしてどう自分の役割を果たすか検討するときに、主に二つのパターンがあります:継承 と 合成です。 継承 Qiitaを開いている時点で、「継承」という言葉を耳にしたことが一回はあるでしょうが、具体的に考えてみましょう。 ゲームの開発を頼まれたあなたに、クライアントはこう言います:「ゲームには犬とロボットがあります!犬は吠えます!ロボットはホイールついてて動き回ります!」 そこで、「なるほど」と思って、以下のようなクラスの図を作ります