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

  1. View receives user input, notifies Presenter
  2. Presenter updates Model based on user input
  3. Model sends updated data to Presenter
  4. 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)

Components