- 647 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:24:36]
- クラスを「ユーザー定義可能な型」として代用する“クラス指向”オブジェクト指向
においてはインスタンスはクラス(すなわち、それが属する型)の支配下にあって しかるべきだし、各々が独自の関数(インターフェイス)を持つなどということは言う までもなく、クラスをしても動作中に仕様を換えるなどということはあってはならない こと。したがって、インスタンスベース(と、それにより実現されるメリット)なんて、 とんでもない…ということになる。 ところが、ケイの“メッセージ指向”オブジェクト指向の世界では、考え方がかな り違う。オブジェクトはソフトウエアを構成する一部ではあるが、それ単独では 非力で意味のない部品であってはならない。それぞれが独立して機能する 小さなコンピュータであるべきだと彼は言う。*1 これらが高速のネットワーク で接続され、ソフトウエアは機能する。彼の設計したSmalltalkでは(残念ながら クラスベースで、インスタンスはその支配下にあるが、それでも)クラスもまた オブジェクト、つまり、別のクラス(メタクラス)のインスタンスであることや、動作 を止めずにクラス定義の変更を通じてオブジェクトの振る舞いを変えられること などに彼のオブジェクト指向が目指していたところの片鱗を見ることができる。*2 もちろんこれは、前者の立場の者、有名なところではメイヤー、の目には、 いたずらに混乱を招くだけの、無用の(あるいは代替可能な)仕様にしか見えない。*3 このように、オブジェクトが自らの振る舞いをクラスに依存せずに決められることについて の評価は、よりどころとするオブジェクト指向が、クラス指向なのか、メッセージ指向なの かによって違ってくる。インスタンスが“本来”どうあるべきか、もしかり。 *1 www.akademia.co.jp/Smalltalk/SML/archives/SRA.archives/2003-October/006339.html *2 ただし、ケイはインスタンスベースに対する態度を保留している。 *3 「オブジェクト指向入門」 ISBN: 4-7561-0050-3
|

|