レスありがとうございます。CES です。
>SDKでウィンドウプロシージャを書く人は、「メッセージ」のディスパッチを
>特に苦労なく学べるんじゃないかと思っています。まあイベントドリブンへの
>発想の転換は必要でしょうが、メッセージの受け渡しそのものは別に難しくない。
>Cの知識そのままでいけます。
>でも、「オブジェクト指向ではオブジェクト同士がメッセージを~」という
>説明では混乱する人が出てくる。これは、「メッセージパッシングは
>関数呼び出しとは異なるものだ」という説明があるせいだろうと思うわけです。
これについては、
「Smalltalk に端を発する、『オブジェクト同士のコミュニケーションはメッセージパッシングだ』とする派と、C++ 流儀の『メッセージパッシングとは要するに関数呼び出しのことだ』とする派、2通りの『オブジェクト指向』が存在し、それがごっちゃになって受け取られているためだ」
という記述を見つけました。
http://sumim.no-ip.com:8080/wiki/414
私は C++ 流しか知らないので、やはりオブジェクト指向の源流を理解するためには、Smalltalk(というか Simula?)を学ぶべきなのかな、と思います。
>>「オブジェクト指向で再利用性は高まるか?」
>>
>>高まると思いますが、マルチプルインスタンスについて論じているらしい
>>「こちら」のリンクが切れているので、先がすごく気になります…
>
>や、すみません。リンク先のURLにNOREFと書いてあるので、いずれ続きを書くつもり
>だったんだろうと思います。
>で、当初書くつもりだったことは既に書いたつもりですので、
>おそらくこのリンク先は、
>
http://kmaebashi.com/programmer/object/shigoto.html
>ここのStringTokenizerあたりの説明のことを指しているのだと思います。
># 既に忘却の彼方です。すみません。
了解いたしました。後ほど読ませていただきます。
>>まぁ、この Eiffel 本は「だから C++ はダメな言語だ。さぁ、皆で
>>Eiffel を使おう!」とか言い出しそうな勢いですが。
>
>すみません、ちなみにその本は何という本でしょうか。
>よろしければ教えてください。
http://www.amazon.co.jp/exec/obidos/ASIN/4894711885/
コイツです。
>私が書いたのは、「継承は、(ソースであれなんであれ)再利用の手段ではない」
>ということです。継承は抽象化の手段だと思っています。
「継承はコードを書かないための技術である」というのも、あながちハズレではない気がしています。
結局、オブジェクト指向とは何のために存在するのかというと、突き詰めれば「バグを減らすため」だと思います。
バグを減らすにはどうすればいいかというと、極力コードを書き起こす量、書き換える量を減らすことです。
継承や多態性は抽象化のための手段であり、抽象化は再利用のための手段であり、再利用はコードを書く量を減らすための手段であると思います。