MVP
MVP can be considered a pattern evolving from the MVC pattern. MVP originated in the 1990s as a response to the limitations and challenges faced when applying MVC to desktop and web application development.
MVP is built upon the concepts of MVC. The View and the Model concepts are shared between the two patterns, but interactions between the View and the Model have significantly changed.
The major limitation of MVC is the tight coupling between the View and the Controller. It results in a limited ability to test the View and the Controller independently. Also, when the View is complex and has a lot of presentation logic, it becomes difficult to test and maintain.
In addition, any variation or extension to the current View inevitably requires a proportional change in the Controller as the Controller needs to understand all the variations and extensions that exist.
MVP promotes an even more decoupled relationship between the View and the Model by introducing the Presenter...