Проблема: действительно большие и запутанные классы активности. Трудно читать, понимать и модифицировать. Трудно проверить.
Возможное решение: Model-View-Presenter (возможно, с инъекцией зависимостей). И Mock Test Objects!
Я планирую реализовать Model-View-Presenter в своем приложении для Android. Это в основном вариант Model-View-Controller. По существу, сделайте операцию прославленный менеджер макетов и отложить любую бизнес-логику до Ведущего. Еще один способ взглянуть на Presenter - это то, что он как класс Helper, созданный в рамках Activity для выполнения тяжелой работы с активностью, обеспечивающей интерфейс/обратный вызов, который может использовать Presenter.
Я хотел бы получить некоторые мысли сообщества об этом. Например:
Какие интерфейсы подразумеваются этим?
Какие обязанности будут иметь Модель и Вид против Ведущего.
Для Presenter, я полагаю, что Activity будет реализовывать интерфейсы, необходимые для Presenter?
Какие вещи должны идти в "Презентер" или "Активность"?
Будет ли ведущий быть единоличным с Activity? Что относительно Activity с несколькими фрагментами, отображающими разные виджеты, каждый со своим адаптером? Нужно ли нам сейчас несколько презентаторов или еще один?
Что относительно Presenter против адаптера?
Как должен докладчик рассказать о деятельности с помощью ListView и ListViewAdapter?
Что входит в презентацию против адаптера?
Должна ли презентатор выбрать адаптер для использования? Или если мероприятие примет это решение?
Должна ли презентатор обрабатывать данные модели или адаптер? Существует ли конфликт между адаптерами и докладчиками? Являются ли адаптеры ведущими? или что-то меньшее/больше. Обычно адаптеры предназначены только для виджетов, таких как ListViews в рамках Activity. Они не выполняют вызовы, которые сами получают данные.
Итак, в представлении-представлении модели ключевое дело - это действительно решить, что происходит в презентаторе и других классах, и что сообщение должно быть между презентатором и действиями, адаптерами и представлениями/включая фрагменты.
Является ли Model-View-Presenter просто плохой идеей для Android? Или это хорошо подходит для Android Framework?
Имейте в виду, что есть множество примеров вне Android от очень зрелого SDK, которым по-прежнему нужна микро-архитектура, например MVP. На самом деле примеров много: например. Flex был очень зрелым SDK для Flash, и все же он по-прежнему нуждался в MVP и MVC-фреймворках практически для любого крупного приложения.
EJB необходимо Spring, чтобы упростить и упорядочить его. MFC/Struts и т.д., И список можно продолжать и продолжать. Почему Android должен быть другим? Почему мы должны предположить, что SDK имеет все необходимое для Android без шаблона проектирования, такого как MVP?
Приятно знать, прежде чем я потрачу сотни часов на это, пожалуйста, не стесняйтесь комментировать/отвечать на любую часть этого вопроса.