Der Auftraggeber wünscht sich einen Shop-Service, um seine Produkt-Bestellungen verwalten zu können.
Er möchte auf der Konsole ausgeben lassen können:
- ein einzelnes Produkt
- alle Produkte
Zusätzlich kann er eine neue Bestellung aufgeben. Für jede neue Bestellung möchte er die entsprechenden Produkt-Ids
mitangeben.
Weiterhin möchte er:
- sich eine einzelne Bestellung anhand ihrer id ausgeben lassen.
- alle Bestellungen ausgeben lassen können.
Implementiere das Bestellsystem (natürlich mit Tests!).
- Erstelle eine Klasse
ProductRepo
, die eineProduct
Liste enthält. - Erstelle eine Klasse
OrderRepo
, die eineOrder
Liste enthält - Erstelle eine Klasse
ShopService
, über die wir eine neueOrder
aufgeben können. throw
eine Exception, wenn nicht-existente Produkte bestellt werden
- Nutze anstelle einer
Product
Klasse ein Interface und implementiere verschiedene Ausführungen - Nutze ENUM's um den Status der Bestellung anzuzeigen
- Versehe die Bestellungen noch mit einem Datum und einer Zeitangabe, überlege hierzu was du für ein Datentyp verwenden
solltest - Schaue dir
assertj
an und nutze die assertj matchers in deinen Tests - Schaue dir an wie Klassendiagramme in UML entworfen werden.
- Nutze einen Optional für die get() Methoden