2012-10-26 7 views
9

現在、Squeak環境でSmalltalkを学習しています。「Squeak - ObjectLandへのクイックトリップ」を読んでいます。私はPythonとJavaからの事前知識を使ってオブジェクト指向のパラダイムに入っています.36ページのこの文章から、私は次のように思っています:オブジェクト指向の実装方​​針

Smalltalkはオブジェクト指向言語のクラスベースの実装です。

短い文章が非常に興味深いです。オブジェクト指向では、クラス、オブジェクト、インスタンスのようなすべての用語は明確に定義されているようであり、唯一の真の意味を指しているようであり、「オブジェクトはクラスのインスタンス」のような一般的な文に出くわす可能性が高い。
しかし、導入戦略についてはめったに聞きません。この場合、オブジェクト指向のコンセプトのの実装はどういう意味ですか?クラス以外のオブジェクト指向言語の実装はありますか?

答えて

9

JavascriptはOO言語のプロトタイプベースの実装です。

クラスをサブクラス化してその新しいクラスのインスタンスを作成する代わりに、プロトタイプをクローンして動作を継承します。

歴史的なメモとして、Javascriptはおそらく最も広く使われているプロトタイプ使用言語ですが、最初はDavid UngarとRandall SmithのSelf languageでした。

implementationsprototypesのものがいくつかあります。私はそれらを使用していないので、私は図書館にコメントすることはできません。特別なコンストラクタの助けを借りて

+0

この洞察をいただきありがとうございます! – phineas

+0

Smalltalkのもう1つのプロトタイプ実装http://scg.unibe.ch/staff/adriankuhn/protalkは実際にクラスポイントをオブジェクト自身を指すように曲げます。私の知る限り、Smalltalkのプロトタイプフレームワークは、Smalltalkに*ネイティブ*プロトタイプを提供する唯一のプロトタイプフレームワークです。他のすべてのものは、Smalltalksクラスベースのモデルの上にレイヤーとしてプロトタイプを実装します。 – akuhn

5

私が見ていないが、エメラルドについて読ん決して、それはオブジェクト指向が、クラス - やプロトタイプベースでもないですが、オブジェクトを構築するようだ「一つ一つが」:

ただし、Emeraldオブジェクトでは、作成にClassオブジェクトは必要ありません。ほとんどのオブジェクトベースのシステムでは、プログラマはまず、すべてのインスタンスの構造と動作を定義するクラスオブジェクトを指定します。クラスオブジェクトは、新しいインスタンスを作成するための新しい呼び出しにも応答します。

対照的に、Emeraldオブジェクトは、オブジェクトコンストラクタを実行することによって作成されます。オブジェクトコンストラクタは、オブジェクトの表現、操作、およびプロセスを定義するEmerald式です。

Andrew Black, Norman Hutchinson, Eric Jul, and Henry Levy: "Object Structure in the Emerald System"を参照してください。

関連する問題