[511] Re:マルチプルインスタンス
投稿者:CES
2007/02/20 02:13:25
> 最低限の条件は「アイデンティティがある」ことである。アイデンティティとはある「オブジェクト」と別の「オブジェクト」が、同じかそうでないか判定できる、という意味だ。
っていうと、じゃあ
int main()
{
int i = 0, j = 0;
return 0;
}
これはオブジェクト指向か? ってことになるです(それ以前に全く意味のないプログラムであることに突っ込んじゃダメ)。
int 型のマルチプルインスタンスを実現しているし、i と j は識別可能です。
マルチプルインスタンス「だけ」では、オブジェクト指向とは思えないのですが…
静的だろうが動的だろうが「データ」があって、そのデータの「責務」が明確になっているとき、それはオブジェクト指向、ではないのかな。
>C++などの流儀のOOは、そう言われることが多いようですね。
C++ ファミリーじゃない言語をよく知らないので、よろしければ、他の流儀では何がオブジェクト指向だと呼ばれているのか、ご教示願えませんか。
#ただ、私が「オブジェクト指向」という時、それは暗黙のうちに「C++ ファミリーのオブジェクト指向」を指していますが(だって他の知らないもん)。
>>「型」という概念がない言語もあるだろうから、「抽象データ」かな。
>
>型の概念のない言語はそうそうないでしょう。RubyやらSmalltalkやらは
>静的な型付けがないだけで、型は立派にあります。
そうでしたか。浅学を晒してしまいました。
>>マルチプルインスタンスは…申し訳ないが、抽象データとはちょっと関係なさそう?
>
>そして、「型」がある以上、それを複数生成するのは前提でしょうから、
>マルチプルインスタンスは、少なくともクラスベースのOOでは、外せない本質だと
>私は考えているわけです。
「型」がある→「マルチプルインスタンスが前提」という繋がりがよくわかりません。
「鋳型」「ケーキ型」などは、同じ形のものを量産するためにありますが…
そもそも「型」の語源は「type」ですし、「クラス」という用語もそうですが、「分類」というような意味があるんじゃないでしょうか。
まず型ありき、ではなくて。
最初は混沌として分類されていなかった「オブジェクト」があり、それを分類するために後から「型」が生まれた…のか?
オブジェクトを分類することによって、似た性質を持つものをひとまとめに扱うことも「抽象化」です。
使う側はその似ている「性質」だけを知ってればいいんであって、似ているけれど「微妙に違う」部分は知らなくてもいいわけですからね。
そうすると「型は責務の分離のためにある」と言えなくもないような。
うーん違う。「型」じゃ意味が広すぎる(int 型にどんな責務があるって言うんだ…)。
「型」は純粋にオブジェクトの分類のためだけにあり、分類に責務を関連付けたのが「オブジェクト指向」か?
これも違う。
オブジェクト指向以前から「型」はあったけれど、オブジェクト指向の「型」は「インターフェイスセット」のことかと。
そのオブジェクトに何ができるのか、でそのオブジェクトを表現したもの。
また、オブジェクトをそのように表現することが「オブジェクト指向」。