Правила зависимости Android MVP

1

Я много читал и тестировал шаблоны MVP в Android, но я здесь, чтобы спросить ваше мнение о том, что может быть лучшей практикой, если я хочу уважать как "правило зависимостей", так и шаблон MVP.

Как это объясняется во многих статьях (см. ссылку http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/), наше приложение должно быть разделено на слои и только внешний слой может создавать экземпляр и использовать внутренний слой. Внутренний слой получает все параметры (переменные, контексты, представления и т.д.) И возвращает ответ или использует обратные вызовы и т.д.

Также рекомендуется изолировать слои, которые вы можете использовать, используя интерфейсы и напрямую вызывающие интерфейсы вместо классов. (см. ссылку: http://www.tinmegali.com/en/model-view-presenter-mvp-in-android-part-2/). В ссылке выше автор указывает, что он не использует методы обратного вызова, а интерфейсы для перехода от внутреннего уровня к внешнему уровню (не соблюдая правило зависимости).

Мои вопросы об этом два:

1) лучше использовать интерфейс для вызывающего класса (внешний слой относится к интерфейсу класса) , а вызываемый класс (внутренний слой ссылается к интерфейсу вызова класса), или он нужен только в одном направлении, например, только внешний класс относится к интерфейсу внутреннего?

2), потому что внешний слой (UI) создает все внутренние слои и через простое вращение экрана разрушается и воссоздается, лучше ли (для утечки памяти) сохранять состояние (когда это нужно), уничтожить внутренние классы и процессы и воссоздать их, или istantiate статическим способом (через Singleton или как экземпляры класса, который расширяет класс Application) все классы, которые должны "выжить" "на экран вращения? Спасибо всем!

  • 1
    Эй, посмотрите этот пример приложения MVP, он изолирует все зависимости, передавая их все в одной точке (Activity), github.com/renaro/tinder-like-app , в этом видео объясняется MVP: youtube.com/watch? v = iXDAcWEhYSk & т = 5s
  • 0
    Спасибо! Я проверю!
Теги:
dependencies
mvp

1 ответ

1
Лучший ответ

Я считаю, что MVP - это как-то разработка Tuxedo, которая означает, что вам нужно разделить все и использовать интерфейсы для объявления различных методов перед их внедрением. Поэтому мой ответ на ваш первый вопрос: ДА!

Обычно в этом типе ситуации я считаю, что именно я определяю слои, а другой младший разработчик собирается использовать ядро, которое я разработал, поэтому лучше ограничить его действие и уменьшить его недостатки и ошибка.

О воссоздании, я бы предложил использовать Dagger надлежащим образом, что на самом деле останавливает вас от воссоздания объектов, которые были созданы раньше только из-за вращения экрана! Вы можете сохранить декларации нижнего уровня в памяти и прикрепить их к новому виду после вращения.

Я бы предложил взглянуть на этот образец репо, который я разработал с помощью MVP, Dagger, RxJava и Retrofit, чтобы лучше узнать лучшие практики и новые методы разработки Android:

http://github.com/mmirhoseini/fyber_mobile_offers

Надеюсь, это поможет:)

  • 0
    очень полезно! Спасибо большое!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню