Ich möchte Eingabewerte für Methoden überprüfen, und ich möchte nicht, Code wie folgt schreiben:Welcher Ansatz eignet sich besser zur Validierung von Eingaben?
void name(String name) {
if(name != null) {
//some action
} else {
//some another action
}
}
So kann ich Dekorateur Muster oder Anmerkungen verwenden.
Decorator Beispiel:
public interface User {
void name(String name);
}
public final class dbUser {
//ctor...
void name(String name) {
//jdbc call for update user name
}
}
public final class CheckedNullUser {
private final CheckedNullUser user;
public CheckedNullUser(User user) {
this.user = user;
}
void name(String name) {
String inputName = "Some default value";
if(name != null) {
inputName = name;
}
return user.name(inputName);
}
}
Annotation Beispiel:
public interface User {
void name(@NotNull String name);
}
public final class dbUser {
//ctor...
void name(@NotNull String name) {
//jdbc call for update user name
}
}
Welcher Ansatz ist besser? Gibt es bessere Ansätze?
Was ist mit der Verwendung von Objects.requireNonNull (name) als erste Anweisung in der Methode dbUser.name? – toongeorges
@RomcoBomco Ihr * Decorator * -Beispiel ist kein Beispiel für * Decorator *, sondern ein Beispiel für einfache Delegierung. Sie zeigen eine Klasse mit dem Namen 'dbUser' an, verwenden diese jedoch nie in Ihrem Code. Ihr Pseudocode ist ohne die fehlenden Komponenten nicht sinnvoll. – CKing
@CKing Mein Code sollte wie neu aussehen CheckedNullUser (neuer dbUser (// ctor args)). Name ("CKing"); Die CheckedNullUser-Klasse schmückt also die Klasse dbUser. – RomcoBomco