Ниже мой интерфейс -
public interface IDBClient {
public String read(ClientInput input);
}
Это моя реализация интерфейса -
public class DatabaseClient implements IDBClient {
@Override
public String read(ClientInput input) {
}
}
Теперь у меня есть factory, который получает экземпляр DatabaseClient
как этот -
IDBClient client = DatabaseClientFactory.getInstance();
....
Теперь мне нужно сделать вызов метода read
моего DatabaseClient
, который принимает параметр ClientInput
, а ниже - класс для него. Этот класс не был написан мной, поэтому я задаю вопрос об этом, и я уверен, что это неправильный способ сделать это.
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;
}
}
Поэтому, когда клиент делает вызов метода read
DatabaseClient
, он создает такой параметр ClientInput
, как это, а затем использует factory для получения экземпляра DatabaseClient
, а затем вызывает метод чтения соответственно.
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);
Проблема: -
- Итак, мой первый вопрос заключается в том, должен ли
userid
,clientid
,timeout_ms
бытьLong
объект или просто простоLong
в классеClientInput
? - Второй вопрос, который у меня есть, может быть, что клиент может передать неверную информацию, такую как
negative user ids
,negative client id
,negative timeout
значение и т.д. и т.д. Затем, где я должен сделать эту проверку? Должен ли я выполнять проверку валидации в конструкторе классаClientInput
или в каком-либо другом месте? Какой лучший способ сделать это и как мне сделать валидацию?