元ネタ
ここここ (コメントを書きそびれている間に、話題が変わってきたので、エントリーにしました。)
随分以前。OOPの説明で自然界の生物を例えに使用した時、窮しました。そのときのエントリーでJittaさんに自然物で継承を説明するのは無理と指摘されました。
「私が犬に鳴けといったら、犬がワンと鳴いた。」調教された犬なら命令に従って鳴くのでしょうが、通常は鳴かないです。犬は自分の意志で鳴いているで、プログラム(人)が期待しているタイミングでは鳴かすのは難しいです。
再生機能を持つ装置を基本クラスとし、再生する対象をレコード、カセット、DVD、CDなどとすれば、旨く説明できそうでした。
犬が鳴くというのは、システム設計者の意思ではなく、対象物の意思ということは、Event処理になりますね。
再生装置に、停止、早送り、巻き戻し、先頭、末尾の釦があり、何の釦がどのタイミングで押されるかは不明です。
装置は、Event待ちのIdling状態で待機しています。
再生装置のEvent待ちの仕組みを継承していけば、派生先にも同等のサービス提供はできますよね。
EventドリブンはOOPとは違う次元のもの....犬が鳴くのはEvent.....「犬は鳴く」<--多態性-->「動物は鳴く」という説明は無理がある。
うーん。強引な詭弁かなぁ。