classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : liest Wird geladen…
Mermaid 11.15.0
Klassendiagramme beschreiben statische Typen und Beziehungen. Nutze Sequenzdiagramme für Laufzeitnachrichten und Flussdiagramme für Entscheidungen.
Mit dem Mermaid-Editor erstellen →Methoden haben Klammern; der Rückgabetyp folgt nach einem Leerzeichen.
classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : liest Wird geladen…
| Syntax | Bedeutung |
|---|---|
| classDiagram / class Id / class Id["Label"] | Deklariert Diagramm, Id und optionalen Anzeigenamen. |
| class Id { members } / Id : member | Fügt Attribute und Methoden im Block oder per Doppelpunkt hinzu. |
| + / - / # / ~ | Öffentliche, private, geschützte und paketinterne Sichtbarkeit. |
| +method(arg) ReturnType / method()* / member$ | Rückgabetyp nach Leerzeichen; * kennzeichnet abstrakte Methoden, $ statische Mitglieder. |
| List~T~ / Box~List~T~~ | Tilden begrenzen Generics; kommagetrennte Typargumente sind nicht unterstützt. |
| <|-- / *-- / o-- / --> / -- / ..> / ..|> / .. | Vererbung, Komposition, Aggregation, Assoziation, durchgezogene Verbindung, Abhängigkeit, Realisierung und gestrichelte Verbindung. |
| A "1" --> "0..*" B : label | Multiplizitäten stehen in Anführungszeichen an Enden, Beschriftungen nach Doppelpunkt. |
| <<interface>> / <<abstract>> / <<service>> / <<enumeration>> | Fügt einen Stereotyp hinzu. |
| namespace Name { class A } | Gruppiert Klassen; 11.15 unterstützt verschachtelte und punktgetrennte Namensräume. |
| note "Text" / note for A "Text" | Ergänzt allgemeine oder klassenbezogene Notizen. |
| direction LR / RL / TB / BT | Setzt die Layoutrichtung. |
| style A fill:#d3e5ff / classDef / cssClass / ::: | Gestaltet direkt oder verwendet visuelle Stilklassen. |
| click A href "URL" / click A call callback() | Links und Rückrufe erfordern geeignete Host-Einstellungen. |
| %% / accTitle: / accDescr: | Kommentare und zugängliche Beschreibungen. |
Sichtbarkeit steht vor dem Mitglied. Klammern kennzeichnen Methoden, danach folgt der Rückgabetyp. Generics verwenden Tilden ohne kommagetrennte Argumente.
classDiagram
class Repository~T~ {
-List~T~ items
#int count
~String scope
+find(id) T
+create() T*
+int total$
} Wird geladen…
Dreiecke zeigen Vererbung oder Realisierung, Rauten Eigentum. Multiplizitäten sind Text statt geprüfter Einschränkungen; kehre bei Bedarf die Richtung um.
classDiagram
Base <|-- Derived
Whole *-- Part
Group o-- Member
Reader --> Document
A -- B
Client ..> Service
Contract <|.. Implementation
X .. Y
Reader "1" --> "0..*" Document : liest Wird geladen…
Namensräume gruppieren visuell, prüfen aber keine Programmiersprachenbereiche. Notizen betreffen das Diagramm oder Klassen; Stereotypen stehen bei der Klasse.
classDiagram
direction LR
namespace Publishing {
class Store {
<<interface>>
+save() bool
}
class Archive
}
Store <|.. Archive
note for Store "Persistenzgrenze"
note "Statische Struktur" Wird geladen…
classDef definiert einen visuellen Stil, cssClass oder ::: wendet ihn an; style verändert nur das benannte Element.
classDiagram
classDef important fill:#d3e5ff,stroke:#0070f3,color:#171717
class Guide:::important
class Archive
cssClass "Archive" important
style Guide fill:#d3e5ff,stroke:#0070f3,stroke-width:2px
Guide --> Archive Wird geladen…
Hierarchische Namensräume zeigen Elterncluster. hierarchicalNamespaces: false erzeugt kompakte Gruppen mit vollständigen Namen, ohne Ids umzubenennen.
---
config:
class:
hierarchicalNamespaces: false
---
classDiagram
namespace Docs.Public {
class Guide
}
namespace Docs.Internal {
class Draft
}
Draft ..> Guide Wird geladen…
Schließe den Mitgliederblock vor Beziehungen.
Ungültige Syntax: Korrektur weiter unten
classDiagram
class Guide {
+String titleclassDiagram
class Guide {
+String title
} Wird geladen…
Nutze List~T~ und vermeide kommagetrennte Typargumente.