Wertobjekte (Vererbung) in Java validieren

8

Ich möchte meine Domänenobjekte validieren, bevor ich sie an einen anderen Teil des Systems weitergebe. Alle Objekte, die ich validieren möchte, teilen sich die gleiche Schnittstelle. Das Problem ist, dass ich nicht herausfinden kann, wie ich das gut schreiben soll. Ich möchte die Validierung nicht in mein Wertobjekt verschieben. Aber ich möchte auch nicht gezwungen werden, eine Instanz zu machen. Überprüfen Sie auch.

Ein Beispiel:

%Vor%

In Scala hätte ich etwas Ähnliches wie Ссылка Aber diese Sprachkonstrukte sind in Java nicht möglich.

    
tbruhn 24.01.2013, 19:15
quelle

3 Antworten

2

Dies ist ein klassischer Fall für das Entwurfsmuster Double Dispatch .

Sie müssen einen kleinen Rückrufcode im Fahrzeug hinzufügen, der zur Laufzeit dynamisch an die entsprechende Validierungsmethode gebunden wird:

%Vor%     
Bohemian 24.01.2013 19:50
quelle
0

Wie Oli Charlesworth in seinem Kommentar schrieb, geschieht dies normalerweise nach dem Muster des Besuchers. Ссылка

Auf dieser Wiki-Seite gibt es ein gutes Java-Beispiel.

    
eMko 24.01.2013 19:25
quelle
0

Ihre beste Wette ist ein Strategie-Muster-Imo, aber das wird Sie nicht davon abbringen, instanceof / isAssignableFrom-Prüfungen zu machen. Wenn Sie es jedoch gut erstellen, können Sie es zumindest teilweise abstrahieren, generisch behandeln und sich keine Gedanken darüber machen, zusätzliche Prüfungen hinzuzufügen, wenn Sie zusätzliche Fahrzeugtypen hinzufügen.

Ich könnte weiterhin Strategiemuster erklären, aber es ist hier besser gemacht: Ссылка ( mit Feder)

Viele Frameworks verfügen standardmäßig über Klassen, um dies zu erleichtern.

    
Taylor 24.01.2013 19:28
quelle