Definition
MVP separates application into Model, View, and Presenter. The Presenter handles all UI logic and acts as the sole mediator between Model and View.
flowchart LR subgraph View V[View] end subgraph Presenter P[Presenter] end subgraph Model M[Model] end V -->|user input| P P -->|updates| M M -->|data| P P -->|formats UI| V
Flow
- View receives user input, notifies Presenter
- Presenter updates Model based on user input
- Model sends updated data to Presenter
- Presenter updates UI based on new data through View
Presenter Responsibilities
The Presenter handles UI logic:
- Transform model data for display
- Handle user input
- Coordinate Model and View updates
- Format data for View presentation
Key Characteristics
- View has no direct knowledge of Model
- Presenter contains all presentation logic
- View is passive (only displays what Presenter provides)
- Easier to test than MVC (View can be mocked)