前回のクラス図についての記事では、1つのクラスについてのみを記載していたが、今回は、PlantUMLで、複数のクラス間の関係をもつクラス図を作成してみたので、作成したクラス図と元になるPlantUMLのソースコードを共有する。
なお、クラス図についてと、PlantUMLのクラス図についてのマニュアルは、前回記載した以下の記事を参照のこと。
PlantUMLでgetter・setterメソッドをもつクラスのクラス図を作成してみたクラス図とは、システムを構成するクラスとそれらの関係を表現する図で、各クラスが保持する属性(プロパティ)や操作(メソッド)も記載すること...
前提条件
下記記事の、VSCode上でPlantUMLを利用するための環境構築が完了していること。
PlantUMLをVSCode上で利用してみたPlantUMLは、VSCode(Visual Studio Code)上で編集するようにすると、ソースコードを色つきで分かりやすく表示...
作成したクラス図(1)
ここで作成対象とするクラス図のソースコードの内容は、以下のサイトの通り。
https://qiita.com/shoheiyokoyama/items/c2ce16b4f492cd014d50
上記、抽象クラスを含むクラス間の関係を表現したクラス図の内容は、以下の通り。
また、上記クラス図のPlantUMLソースコードの内容は、以下の通り。
@startuml abstract class AbstractDisplay { + {abstract} open(): void + {abstract} print(): void + {abstract} close(): void + display(): void {final} } class CharDisplay{ - ch:char + CharDisplay(ch:char) + open(): void + print(): void + close(): void } class StringDisplay{ - string: String - width: int + StringDisplay(string: String) + open(): void + print(): void + close(): void - printLine(): void } class Main{ + {static} main: void(args: String[]) } Main --> "1" CharDisplay Main ---> "2" StringDisplay AbstractDisplay <|-- CharDisplay AbstractDisplay <|-- StringDisplay @enduml
作成したクラス図(2)
ここで作成対象とするクラス図のソースコードの内容は、以下のサイトの通り。
http://www.itsenka.com/contents/development/java/interface.html
上記、インターフェースを含むクラス間の関係を表現したクラス図の内容は、以下の通り。
また、上記クラス図のPlantUMLソースコードの内容は、以下の通り。
@startuml interface If1{ s1: String="If1" m1(): void } interface If2{ s2: String="If2" m2(): void } interface If3{ s3: String="If3" m3(): void } interface If4{ s4: String="If4" m4(): void } class IfSample{ + m1(): void + m2(): void + m3(): void + m4(): void } class Sample1001{ + {static} main: void(args: String[]) } If1 <|-- If3 If2 <|-- If3 If3 <|.. IfSample If4 <|.. IfSample Sample1001 ---> "2" IfSample @enduml
要点まとめ
- PlantUMLによるクラス図で、クラスの継承やインタフェースの実装を含む場合や、クラス間で関連がある場合の表現が行える。