この演習では、既存の UML モデル要素を
パターン・テンプレート引数として指定する、2 つの異なる方法を検討します。
ステップを実行する前にこの演習を表示する場合は、次をクリックして
ください
。
新規の UML 要素を作成する代わりに、ダイアグラム・ビューのパターン・インスタンスに既存の要素名を入力することで、既存の要素を選択できます。または、「プロジェクト・エクスプローラー」ビューかダイアグラム・ビューからパターン・インスタンスに、既存の要素をドラッグすることができます。
既存の要素を引数としてバインドするには、
既存の要素の名前を引数として指定する、
あるいは、既存の要素を引数としてドラッグするなど、
複数の異なる方法を使用することができます。
- 既存の要素の名前を引数として指定する手順は、次のとおりです。
- フリーフォーム図またはクラス図で、パターン・インスタンスの「Implementation」パラメーター上にカーソルを保持します。 アクション・バーが表示され、「クラス」アイコンと「テキスト」アイコンが使用可能になります。
- アクション・バーの「テキスト」アイコンをクリックし、
既存の UML クラス要素の名前を入力します。
テンプレート・パラメーターの右側に長方形のボックスが表示されます。
- ボックスに AppFunction1 と入力し、
サンプル・モデルのクラスを指定します。
- インスタンスの外側をクリックするか Enter を押し、入力を完了します。テンプレート・パラメーターの隣にある空のボックスの代わりにバインド記号が表示され、その後に要素名が表示されます。
- 「プロジェクト・エクスプローラー」ビューで、
テンプレート・バインドへの変更点を確認します。
バインド構造には、Implementation テンプレート・パラメーターにバインドされた AppFunction1 クラスが表示されます。
ここで最も重要なことは、DoWork インターフェースの 2 つの操作が AppFunction1 クラスにコピーされることです。
- 既存の要素を引数としてドラッグする手順は、次のとおりです。
- フリーフォーム図またはクラス図で、パターン・インスタンスの Interface の行の左側に DoWork インターフェースをドラッグ・アンド・ドロップします。
既にバインドされた要素が選択されている場合、パターン・インスタンスに
要素をドラッグすると、バインドされた要素はドラッグされた要素で置き換えられます。
- パターン・バインディングの結果、doNothing 操作と doSomething 操作
が AppFunction1 クラスに追加されたことを、
「プロジェクト・エクスプローラー」ビューで確認します。
- 「プロジェクト・エクスプローラー」ビューで、
インスタンスのテンプレート・バインディング構造を展開し、
新規インターフェース要素が追加されたことを確認します。
Interface テンプレート・パラメーターは、DoWork という名前の 3 番目のインターフェース要素にバインドされます。
パターンを再適用し、モデル要素でその効果を確認する準備が
できました。