Fábio Carballo
Fábio Carballo

Reputation: 3275

Adapter as Presenter? Or talking with a Presenter? Android and MVP

I'm trying to follow the MVP pattern. However, I have some doubts on how to handle adapters and view holders on this pattern.

Should I use the adapter as a presenter? Having the business logic?

Or should I pass a instance of the presenter that handles the list logic and then call methods of the presenter when there is any interaction with the adapter elements?

Thank you

Upvotes: 7

Views: 2639

Answers (1)

Zain
Zain

Reputation: 2372

There is no exact/correct definition of implementing MVP in Android

To answer your question, in my view the Presenter should not have any Android logic.

As such, the Adapter would be a "View" then i.e. Presenter provides it the data (via the Activity or Fragment) and it just deals with how to present this.

I'd do MVP as follow.

  1. Model - POJO's, parsing, Storing (SQLlite) and retrieving data (http). Obviously I'd divide the POJO's, parsing and DB logic into sub folders - but this all falls into Model for me.

  2. View - Activity, Fragment, Adapters - Activities & Fragment hold reference to a Presenter that gives them data to display. How this data/messages are displayed, look + feel etc. is dealt with in the View.

  3. Presenter - The Middle man, provides the logic to inputs i.e. Button Clicks, retrieval of data, validation of inputs & then passes the result back to the View (Activity or Fragment)

Here's a great article on MVP

Here's a simplified diagram of MVP

enter image description here

Answer modified from this question (also answered by me)

Upvotes: 4

Related Questions