An architectural pattern derived from MVC where the Presenter handles all UI logic and acts as an intermediary between the View and Model. Unlike MVC, the View is more passive and the Presenter directly manipulates the View, making it easier to unit test.
Evolved from MVC in the 1990s to address testability issues in GUI applications, particularly popularized by Martin Fowler's writings in the early 2000s. The 'Presenter' name emphasizes its role in presenting data to the view and handling view logic.
MVP is like MVC but with a more controlling waiter - instead of the dining room (View) directly asking the kitchen (Model) for information, the waiter (Presenter) handles all communication and even decides exactly how food should be presented on the plate! This makes it much easier to test the waiter's behavior without needing an actual dining room.
Complete word intelligence in one call. Free tier — 50 lookups/day.