Übung: Money-Wertobjekt - 6
Programmiere ein unveränderliches Money
-Wertobjekt (Value Object) zur Repräsentation von Geldbeträgen in jeweils einer bestimmten Währung. Schreibe immer jeweils nur genau den Code, den Du zur Erfüllung der Aufgabenstellung gerade brauchst.
-
Lege das Grundgerüst für ein
Money
-Wertobjekt, das die Währungen EUR und USD unterstützt. Du könntest eineEnum
verwenden, um die Währung zu repräsentieren. Verwende für den (Cent-)Betrag auf jeden Fall einenint
. Füge Deinem Wertobjekt immer nur genau die Methoden hinzu, die Du auch wirklich gerade brauchst. -
Bitte denke an die automatisierten Tests! Falls Du keine automatisierten Tests schreiben möchtest oder kannst, dann schreibe ein Steuerprogramm, dass alle Features Deiner Lösung auf nachvollziehbare Weise (Konsolenausgabe genügt) demonstriert.
-
Erstelle eine Methode
addTo(Money $that): Money
zum Addieren von zwei Geldbeträgen gleicher Währung. -
Erstelle eine Methode
multiplyWith(float $factor): Money
zum Multiplizieren des Geldbetrags. -
Füge eine
equals()
-Methode hinzu, die einen booleschen Wert zurückgibt. Diese Methode soll nur danntrue
zurückgeben, wenn sowohl Betrag als auch Währung in beiden verglichenen Wertobjekten gleich sind. -
Erweitere Deine Lösung so, dass auch GBP unterstützt werden und füge eine Methode zum Subtrahieren von Geldbeträgen hinzu.