懲りずに続行

>id:EnogunoCap様からの2007-09-18のコメント

OOの強味はそういったものも含めて「抽象化」できるってことなんですよね。比較的(←これが意外に重要)汎用的なインターフェイスを与えてあげることで、実体が何であれ取り扱えるようにする、という。
取り扱う実体に対象違いがあっても同じような手順で取り扱えるようになったので、フレームワークのようなMETAプログラミングも可能になりましたし、デザインパターンのようなテンプレートもカタチを成しました。こういったものの見方は何もJavaC#のようなOOPLに限った話ではなく、他の分野でも十二分に流用可能なのもあってOOは非常に有用だと思っています。


しかし↓↓↓

281 名前:仕様書無しさん 投稿日:2007/09/06(木) 00:04:52
ああそうか。
そもそも俺らオブジェクトとは何か、すら定義できてないんだよ。
こりゃお笑いだw


285 名前:仕様書無しさん 投稿日:2007/09/06(木) 00:19:30
>>281
それは、「オブジェクト指向」がなにを指すかによるでしょう。

ストラウストラップ発のユーザー定義型のOOなら「クラスのインスタンス」、つまり「ユーザーが定義した型に属するデータ」だし、ケイのOOなら、「メッセージの受け手」。プロトタイプベースOOなら「スロットホルダ」で、ブーチ発のOODなら「属性ホルダ」。


なぜオブジェクト指向は普及しないのか 4
http://pc11.2ch.net/test/read.cgi/prog/1188396264/l50より(過去ログ)

・・・私は、OODでは「具体化された『何らかの存在』または『役割』」、OOPではインスタンス説とメッセージの受け手説に則ってます。分析する時は、属性=データをもっぱらDOAで洗い出そうとするので、OOは業務プロセスを洗い出すためにだけ使います。


このように「オブジェクト」という語の表すものの定義については議論百出で、ここの意思統一が出来ないとOOを有効活用するのは難しいです。(知人や同僚とDOAのリソースとイベントの定義について議論が白熱するのと全く同じですね)下手をしてもしなくても、「好み」とか「哲学」とかが絡み合うケースが多いのですり合せそのものも相当難しいです。


で、個人的に思うのが、例えばOOPの継承をバッサリ「差分コーディング」と言いきってしまうとか、はたまたOODで「モデルの抽象化」を目指すのではなく「説明する時に裏紙に書いた絵の清書」と言い切ってしまうとか、OOそのものをまた抽象化する必要がある場合が案外多いかも知れません。

もちろん正しい理解はいずれは必要で、ずっとこんな乱暴な抽象化で進めていくのも危ないんですが、ぴんときてない人を訳がわからないまま連れまわすより、全然まともな結果に繋がると思います。