Всем привет.
Изучаю андроид, возник следующий вопрос: как правильнее обрабатывать результаты запросов и передавать их из репозитория во ViewModel или Presenter. Пока что встречал такие подходы:
1. Объявляется коллбек-интерфейс, ViewModel или Presenter реализуют этот интерфейс, а в репозиторий передают в качестве коллбека сами себя(так как они его и реализуют).
2. Объявляется коллбек-интерфейс, но ViewModel или Presenter не реализуют его, а в репозиторий в качестве коллбека передают экземпляр анонимного класса, реализующего коллбек-интерфейс.
3. В MVVM видел пример с Retrofit, где никаких коллбеков из ViewModel не передавалось, а просто после того как запрос отработал и коллбек Retrofit-а сработал(onResponse или onFailure) внутри репозитория, то из репозитория во ViewModel возвращается сразу LiveData.
P.S. Если я коллбеками называю то, что ими не является, дайте пожалуйста знать)
Вопрос собственно в том, какой из этих подходов правильнее? Есть какие-то причины, по которым стоит отказаться от какого-то из них? Может есть другие подходы, более правильные? Буду благодарен за любую информацию.