Practical usage of PlantUML – §5. クラス図 その3

前回はクラス間の関係について、PlantUML上における記述方法をまとめました。今回は、各クラスの表現方法についてまとめたいと思います。

基本的な書き方のおさらい

PlantUMLでクラスを定義する場合は、 class キーワードを使用します。また、 interface キーワードを使用することで、インターフェイスを定義することもできます。

 

Figure 1

また、クラス名の後の波括弧内「{ … }」に、クラスの持つフィールド情報を追加することもできます。丸括弧「()」を使用すると、自動的にメソッドとして解釈されます。また、コロン「:」 に続けて、プロパティやメソッドの戻り値の型(または任意の情報)を追加することも出来ます。メソッドの場合は、丸括弧「()」に引数を定義することも出来ます。

Figure 2

また、メソッドやプロパティ(フィールド変数)を区別する方法に、 {method} タグや {field} タグを使用することもできます。使用方法は、メソッド名やプロパティ名の前にタグを記述するだけです。この方法だと、丸括弧「()」を使用しなくてもメソッドを定義でき、丸括弧「()」があるものをプロパティにすることができます。プロパティの補足説明などで、丸括弧「()」をやむを得ず使用する場合に効果的でしょう。

 

Figure 3

アクセシビリティの定義方法

メソッドやプロパティのアクセシビリティ(publicprivate のこと)を定義する場合は、メソッド名やプロパティ名の前に以下の記号を使用します。

– (ハイフン) private
+ (プラス) public
~ (チルダ) package private
# (シャープ) protected

Figure 4

静的フィールドと抽象フィールドの定義

クラス内のメソッド名やプロパティ名の前に {static} タグを使用することで、静的なフィールドにすることができます。また、 {abstract} タグを使用することで、抽象フィールドにすることもできます。静的フィールドは下線が表示され、抽象フィールドはインタリック体で表現されるのが分かるかと思います。

Figure 5

色々なクラス

class キーワードの前に abstract キーワードを使用することで、抽象クラスを定義することができます。

Figure 6

クラスとは違いますが、 class キーワードのかわりに enum キーワードを使用することで列挙体を定義することもできます。また、 annotation キーワードを使用するとアノテーションを定義できます。

Figure 7

また、2重の山括弧「<< … >>」を使用することでステレオタイプを使用することもできます。クラス名に続けて2重の山括弧「<< … >>」を書き、その間にステレオタイプの説明を記述します。この方法を応用すると、以下のように CI のようなクラスやインターフェイスに付属するSpot文字も変更することが出来ます。

Figure 8

ステレオタイプで使用した2重の山括弧「<< … >>」を一つ「< … >」にすると、ジェネリッククラス(C++で言うところのテンプレートクラス)を定義することも出来ます。

Figure 9

まとめ

簡単にですが、PlantUMLにおけるクラスの定義方法をいくつか紹介しました。前回のクラス間の関係と合わせれば、基本的なクラス図は記述できかと思います。次回以降は、PlantUMLでクラス図を描く際に知っていると便利なものを取り上げたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください