Model View Presenter (MVP)
A way of separating user interaction, data manipulation, server requests and response handling and updating the UI.
- View is a layer that displays data and reacts to user actions. On Android, this could be an Activity, a Fragment, an android.view.View or a Dialog.
- Model is a data access layer such as database API or remote server API.
- Presenter is a layer that provides View with data from Model. Presenter also handles background tasks.
- Separation of Concerns
- Asynchronous Tasks
- UI Testing
- Learning Curve
(credit to Johnil Quezada)