Wann verwendet man Long vs long in Java?
Unten ist mein Interface -
public interface IDBClient {
public String read(ClientInput input);
}
Dies ist meine Implementierung der Schnittstelle -
public class DatabaseClient implements IDBClient {
@Override
public String read(ClientInput input) {
}
}
Jetzt habe ich eine Fabrik, die die Instanz von bekommtDatabaseClient
so was -
IDBClient client = DatabaseClientFactory.getInstance();
....
Jetzt muss ich anrufenread
Methode meinerDatabaseClient
die akzeptiert dieClientInput
Parameter und unten ist die Klasse für das gleiche. Diese Klasse wurde nicht von mir geschrieben, deshalb habe ich eine Frage dazu und ich bin mir ziemlich sicher, dass dies der falsche Weg ist.
public final class ClientInput {
private Long userid;
private Long clientid;
private Long timeout_ms = 20L;
private boolean debug;
private Map<String, String> parameterMap;
public ClientInput(Long userid, Long clientid, Map<String, String> parameterMap, Long timeout_ms, boolean debug) {
this.userid = userid;
this.clientid = clientid;
this.parameterMap = parameterMap;
this.timeout_ms = timeout_ms;
this.debug = debug;
}
}
Also, wenn der Kunde anruftread
Methode vonDatabaseClient
, werden sie das schaffenClientInput
Parameter wie folgt und verwenden Sie dann die Fabrik, um die Instanz von zu erhaltenDatabaseClient
und rufen Sie dann die Lesemethode entsprechend auf.
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("attribute", "segmentation");
ClientInput input = new ClientInput(109739281L, 20L, paramMap, 1000L, true);
IDBClient client = DatabaseClientFactory.getInstance();
client.read(input);
Problemstellung:-
Meine erste Frage lautet also: Tut das?userid
, clientid
, timeout_ms
sollte seinLong
Objekt oder einfach nurlong
imClientInput
Klasse?Die zweite Frage, die ich habe, könnte sein, dass der Kunde falsche Informationen weitergeben kann, wie znegative user ids
, negative client id
, negative timeout
Wert etc etc .. Wo soll ich dann diese Validierung machen? Soll ich diese Überprüfung im Konstruktor von durchführen?ClientInput
Klasse oder an einem anderen Ort? Was ist der bessere Weg dies zu tun und wie soll ich die Validierung durchführen?