テンプレート

UMLでは、テンプレート(template)を使用することもできる。

テンプレートされたクラス(パラメタライズドクラス(parameterized class))を示すには、クラスの右上に破線の長方形を置き、そこへテンプレート型の名前を記述する。(例えば、T型)

1つのクラスの中に複数のテンプレート型を持つことも可能で、その場合テンプレート型名をカンマ(,)で区切って記述する。
また、置換可能な型を制限する必要がある場合、テンプレート型名に続けてコロン(:)を置き、その後に型名を指定する。

テンプレートを持つクラスを利用する際には、テンプレート型に対して実際に使用する型を指定することが必要である。
このような行為を、テンプレートバインディング(tamplate binding)と呼び、<>キーワードを記述し、その後に次の書式で型の仕様を示す。< テンプレート型 -> 実際の型 >

明示的バインディング
<> < T -> ArrayList >


テンプレートバインディングには上のような明示的バインディング(explicit binding)と、特に型の仕様を示さない暗黙的バインディング(implicit binding)がある。

上の図で、汎化関係を示す白抜き実線矢印を使っているが、これはUML2.0クイックリファレンスを参考にした図。仕様書では、破線の矢印の図だし、記述も破線の矢印を使うように書いてある。(2007/03/05追記)

暗黙的バインディング
SomeList : List < T -> ArrayList >