だんだんこちらのサイトのコンテンツの内容と関係なくなってきましたので、タイトル変えました。
>横槍、失礼します。
横槍大歓迎です。
>でも、オブジェクト指向って、再利用だけが利点でしょうか?
>オブジェクト指向に限らず、「抽象化すること」によって得られる利点を、適当につらつらと考えてみましたが、
>
>・ 設計の向上(データ構造、モジュール間の関連等)
>・ 可読性の向上
>・ 保守性の向上
>・ 意思疎通の向上
>
>等々、ちょっと考えただけでも色々出てきそうです。
うん、なるほど。
確かに抽象化と再利用を直結させるのは短絡的ですね。
が、もう一歩突っ込んで、
・何のために設計をはっきりさせるん?
・可読性や保守性が向上するとどんなメリットがあるん?
・意思疎通が円滑になるとどのように嬉しいん?
という話になると、結局、「バグが減るから嬉しい」に帰結するんじゃないでしょうか。
#とか言ってるとそのうち「より儲かるから嬉しい」に帰結しそうで、身も蓋もなくなってくるんですが。
はじまりは
「わけわからんたとえ話よりも、『オブジェクト指向を使うと何が嬉しいのか』に重きを置いて説明すべきではないか」
にあります。
C 言語の知識がある前提でオブジェクト指向を教えるとすると、何が嬉しいのかと言えばやっぱり「バグが減る・バグが出にくくなるから嬉しい」んだと思います。
#設計がきれいになることによってもたらされるメリットではなく、きれいになること自体が純粋に嬉しい、というのも共感できるところではあるのですが。
もうこうなると、オブジェクト指向のどこがいいのか、バグさえ減るならオブジェクト指向じゃなくたっていいじゃないか、ということになってしまうので、私の意見はやっぱりどこか間違えてるっぽいんですが。
括りすぎ、一般化し過ぎたんでしょうか。
そもそも「オブジェクト指向」という言葉の定義からして統一されたものがない…とも聞きますが。
余談になりますが、このサイトの「オブジェクト指向再入門」に言及されているページを見つけました。
http://sumim.no-ip.com:8080/wiki/755