Я определенно рекомендую немного исследований, прежде чем начинать какой-либо кусок кода.Сегодня Android предлагает множество интересных архитектур приложений, и хотя выбор подходящего варианта не так уж и прост, это путешествие поможет вам многому научиться.
Хорошей отправной точкой для этого является официальный Google * 1003.* примеры проектов архитектуры на GitHub.Не только у вас есть много разных архитектур, таких как MVP, MVVM, MVI, но также есть несколько интересных вариантов в каждой архитектуре.
С другой стороны, Android проделывает большую работу, пытаясь упростить создание большой коллекции библиотек.,Это называется Компоненты архитектуры Android, и здесь у вас есть несколько их примеров , чтобы начать играть и адаптировать их паттерны.
Наконец, если вы все-таки решите пойти с MVP, есть нескольковещи, которые вы должны будете сделать в вашем примере:
- Ваш
MainActivity
(Представление) должен реализовать контракт этого Представления (например: MainViewContract
). - В пределахВ этом представлении вы должны получить ссылку на
MainPresenter
, передающую ссылку на представление, которое реализует MainViewContract
. - . MainPresenter также реализует контракт (например:
MainPresenterContract
).
В основном все необходимые соединения установлены.MainPresenter
будет отвечать за бизнес-обработку Просмотр входов и выходов.В вашем случае входы и выходы очень просты:
Входы (MainPresenterContract
):
void copyText(String textToCopy);
Выходы (MainViewContract
):
void showCopiedText(String copiedText);
Когда пользователь нажмет кнопку, вы отправите сообщение copyText
через локальный экземпляр докладчика.Затем докладчик получит это и выполнит вывод, вызвав showCopiedText
.Поскольку основное представление MainActivity
реализует MainViewContract
, вы получите выходное сообщение в локальном методе представления, в котором вы просто рисуете текст на Textview
.