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.

Tillbaka till kap 3.5