classDiagram
class Document {
+String title
-bool published
+publish() bool
}
class Reader
Reader --> Document : lit Chargement…
Mermaid 11.15.0
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 →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…
| Syntaxe | Signification |
|---|---|
| classDiagram / class Id / class Id["Label"] | Déclare le diagramme, l’id et un libellé facultatif. |
| class Id { members } / Id : member | Ajoute 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 : label | Les 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 / BT | Dé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. |
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…
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…
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…
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…
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…
Fermez le bloc de membres avant les relations.
Syntaxe incorrecte : correction ci-dessous
classDiagram
class Guide {
+String titleclassDiagram
class Guide {
+String title
} Chargement…
Utilisez List~T~ et évitez les paramètres génériques séparés par virgules.