Zum Hauptinhalt springen

Mermaid Klassendiagramm: Spickzettel

Klassendiagramme beschreiben statische Typen und Beziehungen. Nutze Sequenzdiagramme für Laufzeitnachrichten und Flussdiagramme für Entscheidungen.

Mit dem Mermaid-Editor erstellen →

Schnellstart

Methoden haben Klammern; der Rückgabetyp folgt nach einem Leerzeichen.

Mermaid
classDiagram
  class Document {
    +String title
    -bool published
    +publish() bool
  }
  class Reader
  Reader --> Document : liest

Wird geladen…

Syntaxreferenz

Syntaxreferenz
SyntaxBedeutung
classDiagram / class Id / class Id["Label"]Deklariert Diagramm, Id und optionalen Anzeigenamen.
class Id { members } / Id : memberFü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 : labelMultiplizitä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 / BTSetzt 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.

Mitglieder und Generics

Sichtbarkeit steht vor dem Mitglied. Klammern kennzeichnen Methoden, danach folgt der Rückgabetyp. Generics verwenden Tilden ohne kommagetrennte Argumente.

Mermaid
classDiagram
  class Repository~T~ {
    -List~T~ items
    #int count
    ~String scope
    +find(id) T
    +create() T*
    +int total$
  }

Wird geladen…

Beziehungen und Multiplizität

Dreiecke zeigen Vererbung oder Realisierung, Rauten Eigentum. Multiplizitäten sind Text statt geprüfter Einschränkungen; kehre bei Bedarf die Richtung um.

Mermaid
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 und Notizen

Namensräume gruppieren visuell, prüfen aber keine Programmiersprachenbereiche. Notizen betreffen das Diagramm oder Klassen; Stereotypen stehen bei der Klasse.

Mermaid
classDiagram
  direction LR
  namespace Publishing {
    class Store {
      <<interface>>
      +save() bool
    }
    class Archive
  }
  Store <|.. Archive
  note for Store "Persistenzgrenze"
  note "Statische Struktur"

Wird geladen…

Wiederverwendbare Stile

classDef definiert einen visuellen Stil, cssClass oder ::: wendet ihn an; style verändert nur das benannte Element.

Mermaid
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…

Namensraumlayout

Hierarchische Namensräume zeigen Elterncluster. hierarchicalNamespaces: false erzeugt kompakte Gruppen mit vollständigen Namen, ohne Ids umzubenennen.

Mermaid
---
config:
  class:
    hierarchicalNamespaces: false
---
classDiagram
  namespace Docs.Public {
    class Guide
  }
  namespace Docs.Internal {
    class Draft
  }
  Draft ..> Guide

Wird geladen…

Häufige Fehler

Schließende Klammer vergessen

Schließe den Mitgliederblock vor Beziehungen.

Ungültige Syntax: Korrektur weiter unten

classDiagram
  class Guide {
    +String title

Spitze Klammern für Generics verwenden

Nutze List~T~ und vermeide kommagetrennte Typargumente.

Einschränkungen

  • Keine Prüfung von Typsystemen und keine Erzeugung ausführbaren Codes.
  • Kommagetrennte generische Argumente sind nicht unterstützt.
  • Automatisches Layout bestimmt Positionen; Beziehungen werden nicht erzwungen.

Häufig gestellte Fragen

Wie schreibe ich einen Rückgabetyp?
Schreibe Methode mit Klammern, Leerzeichen und Typ, etwa +find(id) Document.
Wie zeige ich Komposition?
Nutze *-- mit gefüllter Raute an der besitzenden Klasse; o-- zeigt Aggregation.
Kann ich Klassen gruppieren?
Ja: deklariere Klassen in namespace. 11.15 unterstützt verschachtelte und punktgetrennte Namensräume.