The Model View Presenter (MVP) pattern facilitates a layered architecture (but doesn't implement layers on its own). We're unable to put business logic into the appropriate layer if it's tangled up in the UI (View) and not decoupled into an independent class that can live within a distinct layer.
As we've discussed, the Model is a representation of our business entities and logic. It's akin to what we've described as being a responsibility of a Business Logic Layer or, as we've chosen to call it, the Domain Layer.
The View is appropriately the user-interface component of MVP how the user physically views the system. In a WinForms application, the view implementation is a Form
.
The final component in MVP is the Presenter. There are various flavors of MVP; all have a consistent definition of the Model, but the separation of responsibilities between the View and the Presenter changes. One variant is considered the supervising controller, where the Presenter (or controller...