#MVP
Model-view-presenter (MVP) is a derivative of the MVC design pattern which focuses on improving presentation logic. Whilst both MVC and MVP target the separation of concerns across multiple components, there are some fundamental differences between them. For the purposes of this summary we will focus on the version of MVP most suitable for web-based architectures.
##Summary
The P in MVP stands for presenter. It's a component which contains the user-interface business logic for the view. Unlike MVC, invocations from the view are delegated to the presenter, which are decoupled from the view and instead talk to it through an interface. This allows for all kinds of useful things such as being able to mock views in unit tests.
The most common implementation of MVP is one where the view is passive (dumb), containing little to no logic. MVP models are almost identical to MVC models and handle application data. The presenter acts as a mediator which talks to both the view and model, however both of these ar