Как лучше убрать повтороение кода? Гении ооп, подскажите как лучше избавиться от повторяющихся кусочков кода в методах, методы разные, возращают разную информуацию, но суть что один и тот же кусочек приходится писать каждый раз 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()) приходиться проверять постоянно
Для избавления от повторяющегося кода в данном случае можно вынести проверку наличия и выполнения запроса в отдельный метод. Например:
private void executeRequest(String method, EnumParse enumParse, Integer page, String search, Integer userId, HttpRequestListener listener) {if (mGetRequest != null && mGetRequest.isExecuting()) {
return;
}
ParamsBuilder paramsBuilder = new ParamsBuilder();
paramsBuilder.setMethod(method);
paramsBuilder.setEnumParse(enumParse);
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);
}
Затем в вашем методе, где раньше было повторение кода, можно использовать этот новый метод:
executeRequest(BOOKS_METHOD, EnumParse.BOOKS, page, search, userId, listener);Таким образом, вы избавитесь от повторяющегося кода и сможете использовать один метод для выполнения запроса с различными параметрами.