Lösningsförslag
Kap 3.5 – UML för bankapplikation
Ett exempel på hur klasserna Bank, Customer och Account kan ritas som UML.
Klassdiagram
Diagrammet visar att en Bank har kunder och att en Customer kan ha flera
konton. I koden motsvaras detta av listor med objekt.
I den här kursen använder du bara enkel pil, -->, i UML-diagram.
has och owns är etiketter som beskriver relationen. has
betyder "har" och owns betyder "äger" eller "ansvarar för".
classDiagram
Bank --> Customer : has
Customer --> Account : owns
class Bank {
-string name
-list customers
+addCustomer(customer) void
+findCustomer(name) Customer
}
class Customer {
-string name
-string customerId
-list accounts
+addAccount(account) void
+getAccounts() list
+getName() string
}
class Account {
-string accountNumber
-float balance
+deposit(amount) void
+withdraw(amount) bool
+getBalance() float
}
Mermaid-kod
Om du vill skriva diagrammet i en Markdown- eller HTML-miljö som stödjer Mermaid kan du använda koden nedan.
classDiagram
Bank --> Customer : has
Customer --> Account : owns
class Bank {
-string name
-list customers
+addCustomer(customer) void
+findCustomer(name) Customer
}
class Customer {
-string name
-string customerId
-list accounts
+addAccount(account) void
+getAccounts() list
+getName() string
}
class Account {
-string accountNumber
-float balance
+deposit(amount) void
+withdraw(amount) bool
+getBalance() float
}
Python-kod
Ladda ner kodexemplet: kap3-5-bank-uml-losningsforslag.py
Att tänka på
- UML-diagrammet behöver inte visa varje kodrad, bara programmets struktur.
- Attributen i diagrammet motsvarar data som sparas i objekten.
- Metoderna i diagrammet motsvarar vad objekten kan göra.
- Associationerna visar att objekten hänger ihop, till exempel genom listor.