class (10)
class_annotations
Source (.mmd)
classDiagram
class Shape {
<<interface>>
+area() double
+perimeter() double
}
class Color {
<<enumeration>>
RED
GREEN
BLUE
}
class AbstractRenderer {
<<abstract>>
+render()*
#setup()
}
class UserService {
<<service>>
+getUser(id int) User
}
Shape <|.. AbstractRenderer : implements
class_basic
Source (.mmd)
classDiagram
class Animal {
+String name
+int age
+makeSound() void
}
class Dog {
+String breed
+bark() void
}
Animal <|-- Dog
class_cardinality
Source (.mmd)
classDiagram
class Customer {
+String name
+String email
}
class Order {
+int orderId
+Date orderDate
}
class OrderItem {
+String product
+int quantity
+double price
}
Customer "1" --> "0..*" Order : places
Order "1" *-- "1..*" OrderItem : contains
class_complex
Source (.mmd)
classDiagram
class Animal {
<<abstract>>
+String name
+int age
+makeSound()* void
+move() void
}
class Dog {
+String breed
+bark() void
+fetch() void
}
class Cat {
+String color
+boolean indoor
+purr() void
+scratch() void
}
class Owner {
+String firstName
+String lastName
+getFullName() String
}
class Veterinarian {
+String license
+examine(animal Animal) Report
}
class Report {
+Date date
+String diagnosis
+boolean healthy
}
Animal <|-- Dog : extends
Animal <|-- Cat : extends
Owner "1" o-- "0..*" Animal : owns
Veterinarian ..> Animal : examines
Veterinarian --> Report : creates
note for Animal "Base class for all animals"
class_direction
Source (.mmd)
classDiagram
direction LR
class Input {
+read() String
}
class Processor {
+process(data String) Result
}
class Output {
+write(result Result) void
}
Input --> Processor : feeds
Processor --> Output : produces
class_generics
Source (.mmd)
classDiagram
class List~T~ {
+add(item T) void
+get(index int) T
+size() int
}
class Map~K, V~ {
+put(key K, value V) void
+get(key K) V
+containsKey(key K) boolean
}
class Comparable~T~ {
<<interface>>
+compareTo(other T) int
}
List~T~ ..> Comparable~T~ : uses
class_members
Source (.mmd)
classDiagram
class BankAccount {
+String owner
+BigDecimal balance
-String accountNumber
#String bankCode
~int pin
+deposit(amount BigDecimal) void
+withdraw(amount BigDecimal) boolean
-validatePin(pin int) boolean
#getStatement() String$
~transferInternal(to BankAccount)*
}
class_namespaces
Source (.mmd)
classDiagram
namespace Domain {
class User {
+String name
+String email
}
class Order {
+int orderId
+Date createdAt
}
}
namespace Service {
class UserService {
+getUser(id int) User
+createUser(name String) User
}
class OrderService {
+placeOrder(userId int) Order
}
}
UserService --> User
OrderService --> Order
OrderService ..> UserService : depends on
class_relationships
Source (.mmd)
classDiagram
class Vehicle
class Car
class Engine
class Fleet
class Driver
class InsurancePolicy
Vehicle <|-- Car : inheritance
Car *-- Engine : composition
Fleet o-- Car : aggregation
Driver --> Car : dependency
Car -- InsurancePolicy : association
class_styling
Source (.mmd)
classDiagram
class Controller:::highlight {
+handleRequest()
}
class Service {
+process()
}
class Repository {
+findAll()
}
Controller --> Service
Service --> Repository
classDef highlight fill:#f9f,stroke:#333,stroke-width:2px
classDef dimmed fill:#eee,stroke:#999
style Repository fill:#dfd,stroke:#393