Я получаю обратные вызовы от сетевых запросов через интерфейсы.
Предположим, есть два класса, A и B. Класс A инициирует все сетевые запросы, которые выполняет B. Когда B завершает задачу, он должен ответить на A.
То, как я это делаю:
public interface MyCallback {
void onTaskDone(String successMessage);
void onTaskFailed(String failMessage);
}
public class A {
onCreate() {
B objectB = new B();
objectB.loginUser(username, password, new MyCallback {
void onTaskDone(successmessage) {
//this is called when task is successful
}
void onTaskFailed(failMessage) {
//this is called when task is failed
});
}
}
}
public class B {
public void loginUser(String username, String password, MyCallback callback) {
//after task is performed
if (task.isSuccessful()) {
callback.onTaskDone("Successful");
} else {
callback.onTaskFailed("Programming is fun they said...");
}
}
}
Как вы можете видеть, если задача выполнена успешно, методы интерфейса вызываются из B, который полученв A.
В чем мой вопрос: есть ли лучшие способы получения обратных вызовов, кроме использования интерфейсов, или эту технику можно улучшить?Одна из проблем, с которой я сталкиваюсь при реализации этого метода, заключается в том, что я использую один и тот же интерфейс со многими методами.В конкретном случае используются только один или два метода, а остальные остаются неиспользованными, например, g.класс B может никогда не назвать onTaskFailed()
.Это нормально, что некоторые методы совершенно не используются?