村山です.
> それはそれこそ「見立て」というか「モデリング」
> の問題だと思います。
無意味.
> ある面でだけ似ていて、
> 別の面から見れば似ていない、のですよね。
> これは、お馴染みOOP(^^;の用語でいえば
> 「多重継承」みたいなものなんだと思います。
否.
初心者向けの単なる「たとえ話」として使われるレベルの認識では
同じかもしれないが.
> OODという文脈(?)の中のObjectと
> OOPという文脈(?)の中のObjectとは
> (ほぼ)同じ概念を指してるんじゃないですか?
Objectの概念が似ているか否かはさほど重要ではない.
「Object」が完全に同義であろうと類似しているだけだろうと,
「OOPにおける設計とOODにおける設計が全く異なる」ということにはなんら影響はない.
ウイルスを例に取れば,本来は「生物のDNA又はRNAで,それ自体は生きていると
は言えないが,生きている細胞に感染し,それに複製してもらうことで再生産と
いう生物に特有の性質を実現もの」を指す言葉だった.
コンピューターウイルスは,生物のDNAでもなければRNAでもない単なるプログラ
ムに過ぎない.しかしDNAやRNAに含まれる遺伝情報はいわば生物にとってのプロ
グラムであり,そういう意味で類似している.またそれ自体に自己複製の能力は
ないものの,感染したコンピュータに複製してもらうことで再生産も可能にして
いる.これもまた同じではないが類似している.
「それ自体はプログラムなどの情報で,それ自体はいかなる意味においても生き
ていないが,他の活動主体に感染し,それに複製してもらうことで自己複製を実
現するもの」
と定義すれば「コンピューターウイルス」のウイルスと「インフルエンザウイル
ス」のウイルスは同義になる.本来の定義に従えば「コンピューターウイルス」
のウイルスは誤用と言って良い.しかし,いずれであろうともインフルエンザウ
イルスとコンピューターウイルスが全く異なる存在であることに変わりはない.
OOPにおけるObjectとOODにおけるObjectが同じであろうとなかろうと,
OOPとOODが全く異なるということに変わりないのは,コレと同じ.
> どうせOOPだって、
> 言語アーキテクチャの数だけOOPが有るような状況ですしねえ(^^;
> 言語を自作した瞬間に新たなOOPが生まれるってな感じです。
これがOOA/OOD屋の言い訳によく使われるのは事実だが,
だからと言ってあらゆるものがOOPとして認められているわけではない.