сделать красиво.
Есть лист обьектов. Нужно итерироваться по этому листу, и на каждом шаге, совершать определенные действия над каждым обьектом.
Допустим это валидация обьекта, потом проверка доп условий, потом вызов АПИ и получение результата. Дальше проверка результата и при определенном условии, результат добавиться в другую коллекцию или нет.
В конце нужно иметь что-то типо отчета об операции. На каждом шаге нужно указывать информацию, что произошло. Будет что-то типо
Начало обработки
Элемент один не обработан, ошибка валидации: поле имя не должно быть пустым
Элемент два не удовлетворяет условию: обьект уже существует в системе
Элемент три обработан за N миллисекунд
Конец обработки
Я думаю все это делали когда-то. Я создаю локальный обьект Report с stringBuilder внутри, на каждом шаге добавляю лог и в конце генерирую отчет. Но весь мой цикл связан с этим отчетом. Теперь мне нужно сделать то же самое в другом сервисе, с тем же алгоритмом, но не добавлять ничего и не знать ни о каких отчетах. Придется дублировать цикл. Может как-то подобное делается проще?
Ничего не понятно. Ну пусть твой проходчик по циклу принимает какой-то интерфейс, и в цикле вызывает метод этого интерфейса. А уж потом передавай имплементации. Одна для генерации репорта, вторая для чего-то другого.
https://pastebin.com/Txm4P212
Обсуждают сегодня