>こちらを見ていただくとわかるかと思うのですが、
>
http://kmaebashi.com/programmer/object/othello.html
>
>「メンバー変数を隠したり、メンバー変数やメソッドをまとめたり」というのは、
>「疑りぶかい~」の想定読者は(たとえCで書いても)すでにやっているだろう、
>というのが前提です。
>この前提が正しいかどうかはよくわかりません。世間のCプログラマは、
>staticを使ってデータや関数を隠そうなどとは考えたこともない人が
>大部分なのかもしれません。だとすれば、私がやっていることは効率の悪い方法だ、
>ということになるかと思います。
>
>ただ、もしこの前提が正しいとするなら、そういうプログラマにカプセル化を
>トクトクと語っても、「何だそんなことは俺もとっくにやってるよ」と思われるのが
>オチです。
いいえ。そうではありません。
そもそも不思議なのが、なぜ、C言語をやってきた人(C言語に対するある程度
の知識があること)だけが対象なのでしょうか。
オブジェクト指向の理解に挫折した(このサイトを読む)人には、
今までC言語をやってきた人もいれば、やってきてない人もいます。
オブジェクト指向言語が始めてのプログラム言語の人もいると思います。
COBOLだけ知っている人もいると思います。
そういう色んな経験やスキルがある人で、オブジェクト指向に挫折した人に、
ちゃんと全てのオブジェクト指向の特徴とメリットを説明することが、
アンチテーゼとしての役割だと思います。
その特徴やメリットが、これまでのプログラム言語でも既に出来るのであれば、
それはその言語での特徴やメリットが、オブジェクト指向言語にも
連綿とひきつがれているんですと説明すればいいだけです。
そうすれば、「オブジェクト指向は今までの開発言語で出来ることやメリットも
継承しながら、新しい考え方や技術もとりいているんだよ」という事実が
分かってもらえると思います。その事実をちゃんと説明することが大切で、
「なんだそんなこととっくにやっているよ」という人だけを意識して説明することで、返ってオブジェクト指向を正しく理解してもら阻害になっていると感じます。
もし、C言語をやってきた人(C言語に対する知識がある程度ある方)向けの
説明であれば、「疑りぶかいあなたのためのオブジェクト指向再入門」という
名前の付け方や、書かれている内容は適切ではないと感じます。
すごく期待を持たせるようなタイトルであり、書き出しで
オブジェクト指向の説明が不適切であることを指摘し、最適な説明を期待させる
ような内容になっていながら、実は端にC言語との比較だけの説明になっています。
>>継承には、重複コードを省くというメリットがあります。
>>ポリモーフィズムには、ロジックの共通化というメリットがあります。
>
>このメリットはどっちも間違っているような。
>少なくともいまどき実装継承ははやらないですし、ポリモルフィズムは
>同じインタフェースで違うロジックを与える機能ですので(Template Methodパターン
>みたいな使い方もあるにはありますが)。
私はこのメリットが正しいということに自信を持っています。
また、そういう使い方をしているPGも回りにあります。
また、書きませんでしたが、他にもメリットがあるとも思っています。
私が言うメリットが正しいかどうかは置いておいて
ここで言いたかったのは、オブジェクト指向の3大特徴には、
それぞれメリットがあって、それも説明しないと、オブジェクト指向の
説明としては不足であるということです。
ですので、管理人様が間違っておられると思うのであれば、それはそれでいいと
思いますし、管理人様が思われるメリットを主張されればよいと思います。
だた、継承やポリモーフィズムの説明をされる際には「今どきやらない」という
表現は誤解を生むと思います。
もし、管理人様が世界中の全てのコードをみてそういわれているのであれば
いいですが、そうではないと思いますから、このような狭い範囲での経験をもって
断定的な表現は、読む方に誤解を与えます。
今使われているかどうかというより、どういうメリットがあるかを一つ一つ正確に
伝えることが、一番正しく理解してもらえると思います。