Повторно использовать код метода, который вставляет массив объектов - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть метод, который вставляет список объектов в базу данных:

public void insert(List<Object> objects){

}

Теперь мне нужно вставить один объект. Я не хочу создавать новый метод, который выполняет вставку одного объекта, потому что он будет дублировать много кода, поэтому я делаю следующее:

public void insert(Object object){
  List<Object> objects = new ArrayList<>();
  objects.add(object);
  insert(objects);
}

Я не знаю, верно ли вышеприведенное, мои знания java находятся на высоком уровне, поэтому я не знаю, насколько дорого для системы является преобразование объекта в соглашение и является ли это хорошей техникой разработки. Или, если по какой-то схеме или соглашению я должен создать метод для вставки одного объекта.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Это перегрузка метода, и это именно то, что нужно делать.

Вы можете улучшить его, сделав его короче и удалив ненужную переменную, например: -

public void insert(Object object){
  insert(Collections.singletonList(object));
}

Одна вещь, которую вы можете рассмотреть, заключается в том, чтобы позвонить на insert(List<Object> objects) из insert(Object object) или наоборот. Если вы перебираете список и обрабатываете каждый элемент один за другим, то было бы лучше иметь код вставки вашей базы данных в insert(Object object) и вызывать этот метод для каждого элемента в insert(List<Object> objects). В противном случае, если вы передаете список методу библиотеки как есть, то то, что вы делаете, правильно.

0 голосов
/ 02 ноября 2018

Нет ничего плохого в вашем шаблоне. Вы можете инициализировать список более умным способом:

public void insert(Object object){
  insert(Arrays.asList(object));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...