Passer au contenu principal

Aide-mémoire des diagrammes de classes Mermaid

Les classes décrivent les types et leurs relations statiques. Utilisez une séquence pour les messages à l’exécution ou un organigramme pour les décisions.

Créer avec l’outil Éditeur Mermaid →

Démarrage rapide

Les méthodes portent des parenthèses ; le type de retour suit un espace.

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

Chargement…

Référence de syntaxe

Référence de syntaxe
SyntaxeSignification
classDiagram / class Id / class Id["Label"]Déclare le diagramme, l’id et un libellé facultatif.
class Id { members } / Id : memberAjoute attributs et méthodes dans un bloc ou avec deux-points.
+ / - / # / ~Visibilité publique, privée, protégée et de paquet.
+method(arg) ReturnType / method()* / member$Retour après un espace ; * marque une méthode abstraite, $ un membre statique.
List~T~ / Box~List~T~~Les tildes délimitent les génériques ; les arguments séparés par virgules ne sont pas pris en charge.
<|-- / *-- / o-- / --> / -- / ..> / ..|> / ..Héritage, composition, agrégation, association, lien continu, dépendance, réalisation et lien pointillé.
A "1" --> "0..*" B : labelLes multiplicités entre guillemets sont aux extrémités ; deux-points ajoute un libellé.
<<interface>> / <<abstract>> / <<service>> / <<enumeration>>Ajoute un stéréotype.
namespace Name { class A }Groupe les classes ; 11.15 accepte les espaces de noms imbriqués et séparés par points.
note "Text" / note for A "Text"Ajoute une note générale ou attachée à une classe.
direction LR / RL / TB / BTDéfinit la direction de disposition.
style A fill:#d3e5ff / classDef / cssClass / :::Style directement ou applique des classes visuelles réutilisables.
click A href "URL" / click A call callback()Liens et callbacks nécessitent des réglages appropriés de l’hôte.
%% / accTitle: / accDescr:Commentaires et descriptions accessibles.

Membres et génériques

La visibilité précède le membre. Les parenthèses identifient les méthodes ; le retour vient ensuite. Les génériques utilisent des tildes sans arguments séparés par virgules.

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

Chargement…

Relations et multiplicité

Les triangles indiquent héritage ou réalisation, les losanges la propriété. Les multiplicités sont du texte, pas des contraintes validées ; inversez l’orientation au besoin.

classDiagram
  Base <|-- Derived
  Whole *-- Part
  Group o-- Member
  Reader --> Document
  A -- B
  Client ..> Service
  Contract <|.. Implementation
  X .. Y
  Reader "1" --> "0..*" Document : lit

Chargement…

Espaces de noms et notes

Les espaces de noms groupent visuellement sans valider les portées du langage. Les notes sont générales ou par classe ; les stéréotypes qualifient leur classe.

classDiagram
  direction LR
  namespace Publishing {
    class Store {
      <<interface>>
      +save() bool
    }
    class Archive
  }
  Store <|.. Archive
  note for Store "Limite de persistance"
  note "Structure statique"

Chargement…

Styles réutilisables

classDef définit une classe visuelle, cssClass ou ::: l’applique ; style ne modifie que l’élément nommé.

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

Chargement…

Disposition des espaces de noms

La hiérarchie affiche les groupes parents. hierarchicalNamespaces: false crée des groupes compacts aux noms complets, sans renommer les ids.

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

Chargement…

Erreurs fréquentes

Oublier une accolade fermante

Fermez le bloc de membres avant les relations.

Syntaxe incorrecte : correction ci-dessous

classDiagram
  class Guide {
    +String title

Utiliser des chevrons pour les génériques

Utilisez List~T~ et évitez les paramètres génériques séparés par virgules.

Limites

  • Ne valide pas un système de types et ne génère pas de code exécutable.
  • Les arguments génériques séparés par virgules ne sont pas pris en charge.
  • La disposition fixe les positions ; les relations ne sont pas des contraintes exécutées.

Foire aux questions

Comment écrire un type de retour ?
Écrivez la méthode avec parenthèses, un espace et le type, comme +find(id) Document.
Comment montrer une composition ?
Utilisez *-- avec le losange plein du côté propriétaire ; o-- indique une agrégation.
Peut-on grouper les classes ?
Oui : déclarez les classes dans namespace. Mermaid 11.15 accepte les espaces imbriqués et séparés par points.