classDiagram
class BankAccount {
+String owner
-float balance
+deposit(amount)
+withdrawal(amount)
}
Klassediagrammer
Teori
Et simpelt klassediagram indeholder 3 områder med klassens navn, attributer/variabler og funktioner/metoder. Det kan også bruges til struct i Rust selvom det ikke er en klasse.
Et klassediagram kan desuden indeholde angivelse af adgang samt relationer til andre klasser som beskrevet nedenfor.
Klassediagrammer kan ligesom rutediagrammer bruges til både design og dokumentation samt i forskellige detaljeringsgrader.
Angivelse af adgang
+angiver offentlig adgang-angiver privat adgang
Relationer
Klassediagrammer kan vise forskellige relationer mellem klasser. Nedenfor behandles afhængighed (dependency), samling (aggregation), trait (interface) og nedarvning (inheritance). Andre relationer som sammenhæng (association) og komposition (composition) behandles ikke her.
Afhængighed
En eller flere af strukturens metoder gør brug af en anden struktur fx som funktionsparameter.
classDiagram
direction RL
class BankAccount {
+String owner
-float balance
+deposit(amount: float) bool
+withdrawal(amount: float) float
}
class Transaction {
+String date
+float amount
+String type
+execute(account: BankAccount) bool
}
BankAccount <.. Transaction
Samling
Strukturen indeholder andre strukturer.
classDiagram
direction RL
class Bank {
+String name
-BankAccount[] accounts
+addAccount(account: BankAccount) bool
+removeAccount(account: BankAccount) bool
}
class BankAccount {
+String owner
-float balance
+deposit(amount: float) bool
+withdrawal(amount: float) float
}
Bank o-- BankAccount
Trait
Trait kan visualiseres i et klassediagram ved at indikere en speciel trait struktur og angive implementerende strukturer. I eksemplet nedenfor implementerer Human og Duck fællestrækket Greet. Den stiplede linje med et pilehoved angiver, at strukturen realiserer fællestrækket der peges på med pilen.
classDiagram
class Greet {
<<trait>>
+greet()
}
class Human {
-name: String
}
class Duck {
}
Greet <|.. Human
Greet <|.. Duck
Nedarvning
Nedarvning kan visualiseres i et klassediagram meget lignende trait visualisering. Der gøres dog brug af en solid linje med pilehoved. Klassen der nedarver peger på den klasse den nedarver fra.
classDiagram
class Greeter {
+greet()
}
class Human {
-name: String
}
class Duck {
}
Greeter <|-- Human
Greeter <|-- Duck