Beste Möglichkeit, Statusflag und Nachricht von einer Methode in Java zurückzugeben

Ich habe ein täuschend einfaches Szenario, und ich möchte eine einfache Lösung, aber es ist nicht offensichtlich, welches "am korrektesten" oder "am meisten Java" ist.

Nehmen wir an, ich habe eine kleine Authentifizierungsmethode (Client-Client) in einer Klasse. Die Authentifizierung kann aus mehreren Gründen fehlschlagen, und ich möchte einen einfachen Booleschen Wert für den Kontrollfluss zurückgeben, aber auch eine String-Nachricht für den Benutzer zurückgeben. Das sind die Möglichkeiten, die ich mir vorstellen kann:

Wenden Sie einen Booleschen Wert an und übergeben Sie einen StringBuilder, um die Nachricht zu sammeln. Dies kommt einer C-artigen Vorgehensweise am nächsten.Eine Ausnahme auslösen, anstatt false zurückzugeben, und die Nachricht einschließen. Ich mag das nicht, da das Scheitern nicht außergewöhnlich ist.Erstellen Sie eine neue Klasse namens AuthenticationStatus mit dem Booleschen Wert und dem String. Dies scheint ein Overkill für eine kleine Methode zu sein.Speichern Sie die Nachricht in einer Mitgliedsvariablen. Dies würde eine potenzielle Rennbedingung mit sich bringen, und ich mag es nicht, dass dies einen Zustand impliziert, der nicht wirklich da ist.

Irgendwelche anderen Vorschläge

Bearbeite Verpasste diese Option aus

Null für Erfolg zurückgeben - Ist das unsicher?

Bearbeite Lösung:

Ich habe mich für die OO-Lösung entschieden und eine kleine AuthenticationResult-Klasse erstellt. Ich würde das in keiner anderen Sprache machen, aber ich mag es in Java. Mir hat auch der Vorschlag gefallen, einen String [] zurückzugeben, da er wie der Null-Return ist, aber sicherer. Ein Vorteil der Result-Klasse ist, dass Sie bei Bedarf eine Erfolgsmeldung mit weiteren Details erhalten können.

Antworten auf die Frage(34)

Ihre Antwort auf die Frage