[499] Re:マルチプルインスタンス
投稿者:CES
2007/02/20 02:13:25
オブジェクト指向では「責務の分離」が大切。
平たく言えば、オブジェクトを使う上で、知っていなければならないこと、知らなくてもいいこと、知っていてはならないことがきちんと分かれていること。
> 「自分にできることを自分自身が知っている」のがOO
自分自身は「何ができるか」と「どうやるか」を知っているけれど、他人には前者だけ教えておけばいい。
うーん…これを一言で言ったものが「抽象化」ということなんだろうか。
オブジェクト指向のキモは「抽象データ型」?
「型」という概念がない言語もあるだろうから、「抽象データ」かな。
してみるに、カプセル化も継承も多態性も実装隠蔽もメッセージパッシングも、すべてはこれをサポートするためのものでしかないことがわかる。
マルチプルインスタンスは…申し訳ないが、抽象データとはちょっと関係なさそう?
うん、何だか、散々語り尽くされたところに落ち着いてしまった感がある。
現時点でのマイ定義:
「オブジェクト指向とは、データの抽象化によってバグを減らすための技術である」。
私の失敗は、いろんなものを同一視しすぎたこと。
例えば
・類似のコードをサブルーチンに分けるのは、コード修正の際に書き換える箇所を少なくすることによってバグを減らす技術。
・データの抽象化は、オブジェクトを「使う側」のコードを再利用することによって、修正の必要性を軽減する技術。
・ほら、この2つは結局同じ(コードを書き換える量を減らすのを目的とした)ことだ。
ここまで一般化してしまったから、わけがわからなくなってしまった。
サブルーチンの切り出しは、責務の分離とまったく関係が無い。だからこれを同一視してはいけなかった。
#我ながら、実に「何を今更」だな。
#ツッコミお待ちしています。