The model-view-presenter (MVP) is an variation of the well known MVC (Model-View-Controller) pattern, engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.
One of the best documentation about this pattern can be found on
Nikola Malovic's blog
, i really invite you to read those explanations.
There are 2 two variants of this pattern :
Claymore implements a variant of the passive view, which improve even more the separation of concern between the View and the Presenter.