パターン作成者はパターン本体を定義するために 3 種類ある統一モデリング言語 (UML) の 1 つを選択する必要があります。 選択できるタイプはコラボレーション、クラス、およびパッケージです。 ほとんどのパターンはコラボレーションです。パターンの設計、適用においてこのパターンがもっとも柔軟性に富んでいるからです。
UML 2.0 のルールに従い、パターン・タイプによって、パターン適用で許容できるターゲット要素タイプが決まります。 例えば、パッケージ・タイプのパターンを UML パッケージまたは UML モデル (モデルはパッケージ・タイプ) に適用でき、パッケージは独自のパッケージを所有できます。 しかし、パッケージ・タイプのパターンを UML クラスに適用することはできず、クラスは独自のパッケージを所有できません。
以下に、パターン・タイプごとに使用可能なターゲット・タイプを列挙します。
設計中、パターン作成者は「新規パターン」ウィザード内のオプションをクリアすることで使用可能なターゲット・タイプを制限できます。 例えば、コラボレーション・タイプのパターンのデフォルト・ターゲットは、クラスに制限できます。
UML ルールに従うだけでなく、パターン適用では 2 つのデフォルト動作のいずれかが行われます。 パターン・インスタンスが子ノードとしてターゲット要素に追加されるか、またはターゲット要素が変更されてパターン・インスタンスになります。 どちらの振る舞いになるかは、パターン作成者の設計、およびターゲット要素の UML 2.0 タイプによって決まります。
以下のテーブルで、パターン・タイプごとにデフォルトの適用の振る舞いを示します。
パターン・タイプ | ||||
---|---|---|---|---|
パッケージ・タイプ | コラボレーション・タイプ | クラス・タイプ | ||
UML 2.0 モデル内のターゲット要素 |
パッケージ・ターゲット | パッケージ・タイプのパターン・インスタンスをターゲットに追加します。 | コラボレーション・タイプのパターン・インスタンスをターゲットに追加します。 | クラス・タイプのパターン・インスタンスをターゲットに追加します。 |
コラボレーション・ターゲット | 許可されません。 | ターゲット・コラボレーションをコラボレーション・タイプのパターン・インスタンスに変更し、 パターンのパラメーターをインスタンスに追加します。 | 許可されません。 | |
クラス・ターゲット | 許可されません。 | コラボレーション・タイプのパターン・インスタンスをターゲットに追加します。 | パターン・ステレオタイプを追加してターゲット・クラスを変更します。 パターンのパラメーターは追加しないでください。 |