オブジェクト
SenseTalkは、プログラミングの複雑で奥深い詳細を習得するための長年の学習なしに、人々が自分自身のソフトウェアを作成できるように設計されました。このドキュメンテーションの早いセクションで提供される情報は、SenseTalkスクリプトを主にあなたがコンピュータに何をしたいのかを伝える簡単なステートメントのリストとして焦点を当てています。多くの人々にとって、その基本的なスクリプト作成のアプローチは彼らのニーズに十分でしょう。
ただ少しでも多くを学びたいと考える人々のために、SenseTalkのオブジェクトモデルは、その複雑さを大幅に増加させることなく、はるかに豊かな環境を提供します。
ここで説明する情報は、SenseTalkのモジュラー構造の概要を提供し、あなたが自分自身のオブジェクト指向のSenseTalkソフトウェアを書く方法を学び進めるにつれて親しむことを望むキーコンセプトと用語を紹介します。
Stageの設定
SenseTalkは"スクリプト"言語です。あなたはシステムの異なる要素が何をするのかを説明するスクリプトを書くことでSenseTalkソフトウェアを作成します。SenseTalkでこれを行う通常の方法は、システムのアクターとなるいくつかの異なる“オブジェクト”を作成することです。各オブジェクトは、システム内で何をするのかを語る自身のスクリプトを持っています。このモジュラーなアプローチを採ることで、各スクリプトは比較的短く、自己完結型にすることができ、これにより複雑なシステムでも比較的簡単に扱うことができます。
システム内のオブジェクトは、メッセージの送受信によって相互作用します。オブジェクトは、そのメッセージのハンドラがある場合にメッセージを応答します。スクリプトは一連のハンドラから成り、そのオブジェクトが応答する各メッセージに対して一つずつあります。その他のメッセージはオブジェクトによって無視されます。
一つのSenseTalkオブジェクトは他のものを助けることができます。似たような振る舞いや能力を持つ必要があるいくつかのオブジェクトがある場合、共有される振る舞いと能力を具現化するヘルパーオブジェクトを作成することができます。他の各オブジェクトはヘルパーオブジェクトによって助けられることができ、それぞれが自身のスクリプトにそれらの振る舞いを定義する必要を排除します。これにより、あなたの時間と労力を大幅に節約することができます。また、ヘルパーオブジェクトのスクリプトを単純に変更することで振る舞いを更新することが簡単になります。その他のすべてのオブジェクトはその変更された振る舞いを“継承”することになります。
他のオブジェクト指向言語に詳しい人々のために注意すべき点は、SenseTalkはやや異なるということです。ほとんどの他の言語はオブジェクトの“クラス”を定義し、一般にそのクラス内のすべてのオブジェクトに対してクラスレベルで振る舞いを実装します。しかしSenseTalkでは、各個別のオブジェクトが自身のスクリプトを持っているため、独自のユニークな振る舞いを持つことができます。
SenseTalkにはクラスがなく、そのヘルパーはオブジェクトが他の任意の数のオブジェクトによって提供される機能を使用(または継承)することを可能にすることで、同様に豊かな一連の機能を提供します。この全オブジェクト(クラスレス)アプローチは、クラスベースのシステムよりもシンプルで、かつ多機能です。