214 похожих чатов

Ребята, всем доброго времени суток. Пишу приложение с МВП. Есть

ряд вопросов и я буду безумно благодарен если на них кто-то даст ответ. С МВП знаком уже месяцев 7. Но всегда лень было применять, и лень было подчищать вопросы. Но вот настал тот час, итак:
1) View это просто интерфейс, который должен быть реализован Активити, Фрагментом, или другим классом, чтобы тот стал вью, верно?
2) Модель - это один класс, который реализует все методы доступа к данным, или это множество классов, с сгруппированными методами под свои задачи? К примеру: есть экран друзей, нам надо делать запрос чтобы получить массив объектов типа друг. Этот запрос должен реализоваться в том же классе, где и все остальные запросы приложения, или лучше создать отдельный класс, который реализует интерфейс с методами конкретно касательно экрана друзей? Какой подход лучше?
3) Модель это слой, или формат данных? Часто слышу как на pojo говорят "модель".
4) Надо ли писать отдельный java interface для презентера? Видел код, где у нас есть интерфейс презентера для вью, и интерфейс презентера для модели. Их делят на два интерфейса, таким образом, у нас вью вызывает свои методы для презентера, а модель свои.
5) Насколько мне известно, Вью держит объект презентера, чтобы отправлять взаимодействовать с ним, Модель тоже держит объект презентера(в том случае, если модель это не один класс, а множество) и также с ним взаимодействует, презентер держит объект и на вью, и на модель. Вопрос: ссылку надо держать именно на объект, который реализует интерфейс, или сам интерфейс? MainPresenter implements MainViewContract, MainModelContract. MainActivity implements MainView. MainModel implements MainModelContract. Мне держать MainPresenter или MainViewContract/MainModelContract? MainActivity или MainView? MainModel или MainModelContract?
6) Последний вопрос, но самый жесткий для меня... я прочитал, что концепция МВП подразумевает максимальное разделение между слоями, а значит, они и создаваться должны независимо друг от друга. То-есть одновременно должны быть инициализированы все три слоя. Как это реализовать, если в андроиде активити создается автоматически системой, у нас нет возможности создать одновременно с ним и в то же время не в нем слой презентера и модели? Была идея создать Активити-Рутер. Класс, который будет создаваться первым в приложении(Activity intent-filter category Launcher) и инициализировать презентер и модель одновременно с вью. НО там все равно куча подводных камней, и я бы хотел мнение более опытных людей. СПасибо за внимание всем кто дочитал и не подумайте, пожалуйста, что мне было лень гуглить, я смотрел код на гитхабе, читал статьи на хабре, спрашивал у других людей, но нигде нет никакого однозначного ответа на мои вопросы.

1 ответов

4 просмотра

5) модель может описать коллбэк, а презентер - его реализовать и передать в модель для получения данных асинхронно. Но вообще - модель не знает о презентере, в презентер внедрена та или иная модель(и)

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта