言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

プロトタイプの考え方

プロトタイプとは、あるクラスを代表する一つのインスタンス(オブジェクト)で、prototype クラスメソッドにより生成します。これは開発時、開発者によって利用されるオブジェクトで、開発環境がインタラクティブにメソッドを定義する際に使われます。
prototype 指向(言葉は考え中)において、定義中のコードであっても、実体を持ったものとして扱われます。prototype によって用意されたオブジェクトを利用することにより、ブラウザに現れる任意のコード辺はいつでも実行可能な状態になっています。emacs lisp を思い浮かべて頂ければ分かりやすいでしょう。

問題点

  • ブラウザ中で参照出来るのは今のところ変数のみである。Squeak は型を持たないため、仮引数に prototype オブジェクトを束縛することができない。
    • これにはある種の事前条件によって、このメソッドが期待する引数の典型をどこかに記述出来るようにする必要がある。テストケースを用いてスマートに記述出来るのではないだろうか?
  • 例えば TextMorphForEditView(textMorph) は PluggableTextMorph 中に含まれるオブジェクトであり、しかも双方向に参照を持つ。双方向に参照を参照を持つオブジェクト群のプロトタイプはどちらのクラスで生成するべきか。