多くの場合、 いくつかのデータ構造「オブジェクト」(object)を扱わなければなりません。 それらは、 いつくかの側面では同様に扱う必要がありますが、
それ以外の側面では異なる扱いをしなければなりません。 グラフィカル・オブジェクトとは教科書的な例で言えば、 円や三角形や恐竜の絵やアイコン等ですが、
プログラム開発中にさらに追加することもできます。 あなたが、 任意のグラフィカル・オブジェクトにいくつかの操作を適用したいとしましょう。 たとえば、
画面上に表示するための draw
操作です。 しかしながら、 この draw
はオブジェクトの種類ごとに異なる処理を行う必要があります。
draw
を、 描画されるオブジェクトの種類に依存して適切なコードを実行する、 大きな CASE
制御構造として実装することはできます。 これはあまり洗練されたものではなく、 さらに、
新しい種類のグラフィック・オブジェクト(例えば宇宙船など)を追加するたびに draw
を変更する必要があります。
私たちがやりたいことは、 宇宙船を定義するときにシステムに次のように指示することです: 「宇宙船を draw
する方法は私たちがこれこれこのとおり書いたので、 それ以外の処理はシステム側でよしなしにしてください」
これは、 (当然ながら、 )オブジェクト指向と呼ばれるすべてのシステムで解決すべき問題です。 ここで紹介するオブジェクト指向パッケージは、 この問題を解決します(それ以外の問題はあんまり解決できません…)。