Ein Objekt für jeden Zustand
Wie wäre es, wenn wir jeden Zustand durch ein eigenes Objekt repräsentieren? Das ist übrigens die Idee, die auch dem State-Pattern zugrunde liegt. Und es ist gut mit der Unveränderlichkeit vereinbar, die wir für Wertobjekte brauchen. Also, legen wir los.
Wir benennen unser Wertobjekt IBAN
um in UnvalidatedIBAN
, weil wir zunächst noch nicht geprüft haben, ob es das entsprechende Bankkonto überhaupt gibt. Du merkst vielleicht, dass wir den Begriff "unvalidated" hier in der fachlichen Bedeutung verwenden: eine Kontonummer, von der wir nicht wissen, ob das Konto existiert. Das hat nicht wirklich mehr etwas mit dem "Daten validieren" zu tun, von dem wir im Alltag gerne sprechen.
Dich verwirren diese Wortklaubereien? Gut, denn das ist der erste Schritt auf dem Weg zum richtigen Verständnis!