Skip to main content

クラス図

(Class Diagram)

サンプル​

classDiagram
class Animal{
+name: String
+age: int
+eat()
}
class Dog{
+breed: String
+bark()
}
Animal <|-- Dog

クラス​

クラスを定義できます。

class Sample

インターフェイス​

class Sample {
<<Interface>>
}

抽象クラス​

class Sample {
<<abstract>>
}

パッケージ​

danger

mermaid.jsではパッケージはサポートされません。

パッケージの中にクラス、インターフェース、抽象クラスを定義​

danger

mermaid.jsではパッケージはサポートされません。

フィールド​

fieldA : int

メソッド​

methodA() : void

可視性​

これはjavaの可視性を強く感じる要素かもしれません...。

private​

-fieldA : int
-methodA() : void

protected​

#fieldA : int
#methodA() : void

package private​

~fieldA : int
~methodA() : void

public​

+fieldA : int
+methodA() : void

static​

fieldA : int$
methodA() : void$

abstract​

danger

mermaid.jsではabstractはサポートされません。

ステレオタイプ​

class Sample {
<<ステレオタイプ>>
}

クラス間などの関係​

継承​

ClassA <|-- ClassB

実装​

InterfaceA <.. ClassA

内部クラス​

danger

mermaid.jsでは内部クラスはサポートされません。

依存​

ClassA <|-- ClassB

集約​

子が親から独立して存在できる関係を表しそうですが…。
あまり使わない要素かもしれませんw

ClassA *-- ClassB

構成​

子が親から独立して存在できない関係を表すそうですが…。
あまり使わない要素かもしれませんw

ClassA o-- ClassB

リンク(実線)​

ClassA -- ClassB

リンク(点線)​

ClassA .. ClassB

ラベル​

ラベルはリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。

ClassA -- ClassB : ラベル

ラベルに矢印の追加​

danger

mermaid.jsではラベルに矢印の追加はサポートされません。

多重度​

多重度はリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。

warning

一応、動作はするものの期待通りとは・・・

ClassA "1..*" -- "*" ClassB

ノート​

danger

mermaid.jsではノートはサポートされません。

全体の設定​

タイトル​

タイトルを定義できます。

warning

定義はできるけどタイトル表示されない

title 新基盤構築計画

ヘッダ​

ヘッダを定義できます。

warning

定義はできるけどヘッダ表示されない

header 新基盤構築計画

フッタ​

フッタを定義できます。

warning

定義はできるけどフッタ表示されない

footer フッタ

キャプション​

キャプションを定義できます。

caption キャプション

行コメント​

%% から始まる行は行コメントとして扱われます。

ブロックコメント​

%%{ から%%}まではブロックコメントとして扱われます。

参照​

https://zenn.dev/tak_uchida/articles/da583cf960e854