Model View Presenter (the end of MVC?)
Couple of days ago I was asked about the Model-View-Controller and how it works. While I was doing my best to describe it I mentioned the newer Model-View-Presenter pattern but I couldn't quite remember the difference. Just so happens today, while reading an unrelated subject matter, this picture turns up. It demonstrates nicely the difference between the two patterns.
If you think of the main three objects as being spread over the three layers of a system, View in the application layer, Presenter/Controller in the business layer, and the Model in the data layer, then in MVC any business rules or logic that might be needed to prepare a model for viewing would have to be either in the View (application layer) or in the Model (data layer) which isn't very good, the MVP pattern solves that problem while keeping the idea behind the pattern. The MVC is a nice handy pattern but that is a bit of a flaw.