zusammenfassungen/Writerside/topics/02/OOAD/Praktikum3_Diagramme.md
David Schirrmeister 73e1392286 update
2024-12-05 13:53:10 +01:00

108 lines
2.2 KiB
Markdown

```mermaid
classDiagram
class Person
<<abstract>> Person
Person : - name
Person : - adress
class Tourguide
Tourguide : - certifiedAdventurePackages <AdventurePackage*> vector
class Participant
class AdventurePackage
AdventurePackage : - title
AdventurePackage : - description
class Accommodation
Accommodation : - name
Accommodation : - adress
class Trip
Trip : - startingDate
class Booking
Booking : - payed
Booking : - dateOfBooking
Tourguide --|> Person
Participant --|> Person
Trip "1..*" o-- "1..*" AdventurePackage
Trip "*" o-- "1" Accommodation
Participant "1..*" -- "1..*" Trip: Booking
Participant "1..*" .. Booking
Booking "1..*" .. "1..*" Trip
Tourguide "1" --o "*" Trip
Tourguide "1..*" -- "1..*" AdventurePackage
```
```mermaid
sequenceDiagram
actor Tom as Tom : Human
participant LibGui as libGUI
participant Lib as Lib
participant CTom as Tom : Customer
activate LibGui
Tom -) LibGui: name = "HP1"
LibGui ->>+ Lib: getEbook("HP1")
create participant EBook as HP1 : EBook
Lib -->>+ EBook: <<create>> EBook("HP1", 3.99)
note right of EBook: Im Konstruktor von EBook fehlt<br/>die Zuweisung des Preise.<br/>Hier ergänzt
EBook --)- Lib: return
Lib --)- LibGui: return
LibGui --)+ Tom: return
Tom -)- LibGui: clickBorrowButton
LibGui ->>+ Lib: getEbook("HP1")
Lib ->>+ CTom: borrow("HP1")
CTom ->>+ EBook: getPrice()
EBook --)- CTom: return 3.99
CTom ->> CTom: charge(3.99)
CTom --)- Lib: return
Lib --)- LibGui: return
LibGui ->>+ EBook: generateLink()
EBook --)- LibGui: return link
activate LibGui
LibGui ->> LibGui: showLink()
LibGui --)- LibGui: return
LibGui --) Tom: return
destroy EBook
LibGui -x EBook: <<destroy>>
destroy CTom
LibGui -x CTom: <<destroy>>
destroy Lib
LibGui -x- Lib: <<destroy>>
destroy LibGui
Tom --x LibGui: <<destroy>>
```
```mermaid
classDiagram
class Kreis{
<<abstract>>
- radius : ft
+ setRadius()
}
class Ellipse{
- breite : ft
- hoehe : ft
+ setBreite()
+ setHoehe()
}
Ellipse --|> Kreis
```