Ниже мой интерфейс -Когда использовать Long vs long в java?
public interface IDBClient {
public String read(ClientInput input);
}
Это моя реализация интерфейса -
public class DatabaseClient implements IDBClient {
@Override
public String read(ClientInput input) {
}
}
Теперь у меня есть завод, который получает экземпляр DatabaseClient
, как это -
IDBClient client = DatabaseClientFactory.getInstance();
....
Теперь мне нужно позвонить в read
метод моего DatabaseClient
, который принимает параметр ClientInput
ter и ниже - класс для одного и того же. Этот класс не был написан мной, поэтому я задаю этому вопрос, и я уверен, что это неправильный способ сделать это.
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
, как это и затем использовать завод, чтобы получить экземпляр 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
или в каком-либо другом месте? Каков лучший способ сделать это и как мне сделать валидацию?
Вы задали два очень разные вопросы. Вы должны были сделать две отдельные публикации, так как Stackoverflow не должен быть дискуссионной группой. Я почти уверен, что вы найдете оба вопроса и ответили много раз. В первом вопросе найдите, когда использовать объект и когда использовать примитив. Для второго вопроса выполните поиск аргументов/параметров. –