オブジェクトが具象エンティティーを表すのに対して、 クラスは概念または物理的存在の抽象化を表します。 オブジェクトは、十分に定義された境界を持ち、 アプリケーション内で有効となります。 オブジェクトが持つ特性は、以下の表で一覧されているものになります。
特性 | 説明 |
---|---|
状態 | 状態は、オブジェクトが存在できるための条件です。 オブジェクトの状態は、属性のセットによって実装され、 通常、時間とともに変化します。 |
振る舞い | あるオブジェクトが、 その他のオブジェクトからの要求に応答する方法を、 振る舞いによって決定します。 振る舞いは、操作のセットによって実装されます。 |
識別 | オブジェクトは、識別によって固有の存在になります。 各インスタンスの状態が同じである場合、 オブジェクトの固有識別を使用して、 クラスの複数のインスタンスを差異化することができます。 |
それぞれのオブジェクトには、固有の名前を付ける必要があります。 完全なオブジェクト名は、3 つの部分に分かれます。 オブジェクト名、役割名、およびクラス名です。 オブジェクトの名前を付けるときは、 どの部分を組み合わせてもかまいません。 オンライン・ショッピング・システム用の オブジェクト名のバリエーションを、以下の表でいくつか説明します。
構文 | サンプル | 説明 |
---|---|---|
オブジェクト/役割: クラス | cart100/storage:cart | cart クラスの名前付きインスタンス (cart100) は、 相互作用中にストレージの役割を実行します。 |
オブジェクト: クラス | cart100:cart | cart クラスの名前付きインスタンス (cart100) |
/役割: クラス | /storage:cart | 相互作用中にストレージの役割を実行する、cart クラスの匿名インスタンス。 |
オブジェクト/役割 | cart/storage | ストレージの役割を演じる、cart という名前のオブジェクト このオブジェクトは、クラスの名前を非表示にするオブジェクトか、 クラスと関連付けされていないインスタンスかの、いずれかです。 |
オブジェクト | cart100 | cart100 という名前のオブジェクト。 このオブジェクトは、クラスの名前を非表示にするインスタンスか、 クラスと関連付けされていないインスタンスかの、いずれかです。 |
/役割 | /storage | ストレージの役割を実行する、匿名のインスタンス。 このオブジェクトは、オブジェクトとクラスの名前を非表示にするインスタンスか、 オブジェクトまたはクラスと関連付けされていないインスタンスかの、いずれかです。 |
: クラス | :cart | customer クラスの匿名インスタンス。 |
3 つのオブジェクトのタイプを、以下の表で説明します。
オブジェクトのタイプ | 説明 |
---|---|
アクティブ | アクティブ・オブジェクトは、制御スレッドを所有しており、 制御アクティビティーを開始することができます。 プロセスとタスクは、アクティブ・オブジェクトのタイプです。 |
パッシブ | パッシブ・オブジェクトは、データを保持しますが、制御は開始しません。 |
複数インスタンス | オブジェクトのコレクション、または同一クラスの複数インスタンスです。 通常、複数インスタンスは、 オブジェクトのセットが単一のメッセージ (または刺激) と相互作用していることを表すために使用されます。 |