Я знаю, что мы можем реализовать Кинжал 2 для инъекции между Presenter и View, но нам нужна инъекция между M и P? Вы можете объяснить причину?Нужна ли нам инъекция (например, Dagger2) между моделью и презентатором в структуре MVP?
ответ
Все зависит от ситуации, но каждый из них должен быть независимым от других, поэтому Presenter не должен зависеть от модели. Так что вообще да.
Если рассматривать этот очень хороший пример: https://medium.com/@nurrohman/a-simple-android-apps-with-mvp-dagger-rxjava-and-retrofit-4edb214a66d7#.89j5gtafn вы увидите, что NetworkService (в данном примере это класс модели слоя) вводится в HomePresenter (класс Presenter слоя) кинжалом.
Этот пример также подтверждает это: https://github.com/grandstaish/hello-mvp-dagger-2
Спасибо за помощь. Но я новичок в кинжале, не могу полностью понять пример, у меня есть другой вопрос, чтобы сделать каждый слой независимым, я должен построить 2 конструктора для презентатора? Для презентатора и представления, презентатору требуется экземпляр активности, для презентатора и модели, докладчик требует результата, разумно ли строить такую структуру? Спасибо! – LunarS
AFAIK, инъекции зависимость не имеет ничего общего с использованием MVP. Вы можете выполнить MVP с или без инъекции зависимости. – Karakuri
@ Каракури, я знаю. Но я все еще не понимаю, лучше ли использовать инъекцию зависимости между моделью и презентатором. – LunarS
Вы можете посмотреть этот образец проекта http://github.com/mmirhoseini/marvel и эту статью https://hackernoon.com/yet-another-mvp-article-part-1-lets-get-to- know-the-project-d3fd553b3e21, чтобы ознакомиться с MVP. –