Задать вопрос
@Scotik
Junior Android Developer

Как лучше убрать повтороение кода?

Гении ооп, подскажите как лучше избавиться от повторяющихся кусочков кода в методах, методы разные, возращают разную информуацию, но суть что один и тот же кусочек приходится писать каждый раз

if (mGetRequest != null && mGetRequest.isExecuting())
            return;

        ParamsBuilder paramsBuilder = new ParamsBuilder();
        paramsBuilder.setMethod(BOOKS_METHOD);
        paramsBuilder.setEnumParse(EnumParse.BOOKS);

        if (page != null) paramsBuilder.addParams("page", String.valueOf(page));
        if (search != null) paramsBuilder.addParams("s", search);
        if (userId != null) paramsBuilder.addParams("uid", userId.toString());

        mGetRequest = new HttpRequest(listener);
        mGetRequest.execute(paramsBuilder);


вот этот кусочек (mGetRequest != null && mGetRequest.isExecuting()) приходиться проверять постоянно
  • Вопрос задан
  • 453 просмотра
Подписаться 2 Оценить 2 комментария
Решения вопроса 2
@zelan
Кратко обо мне не получится.
Метод, который принимает на вход функциональный интерфейс(лямбду с кодом), внутри метода проверяется условие, и в зависимости от условия лямбда выполняется или нет.
Ответ написан
Комментировать
DmitryITWorksMakarov
@DmitryITWorksMakarov
Не являюсь специалистом по Java, я в основном по С# практикуюсь.
На C# делаю через метод расширения принимающем лямбду. Если объект не null, то запускается лямбда, принимая объект как параметр. Метот расширения возвращает результат лямбды, если объект не null, и null, если объект null.
Удобно. Можно делать цепочки вызовов не проверяя вручную на null или делать вложенные вызовы (кому как удобнее)....
Насколько знаю в Java8 есть и методы расширения и лямбды Новое в Java8.
Евгений Корначев видимо именно это и предлагает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
bool isExecuting()
{
return mGetRequest != null && mGetRequest.isExecuting();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы