Comparison
Model-view-controllervsModel-view-presenter
Model-view-controller
the browser posted to a controller, which changed the model and picked a view, and the view read the model itself.
Splitting an application into a model holding state and rules, views rendering it, and controllers handling input and choosing what happens next. The original desktop form had views observing the model directly; every server-side web framework calling itself MVC has dropped that half, so the acronym now means roughly 'request handler, template, and something behind them'. Being able to say which version you mean is most of what the interview question is after.
Full entry →Model-view-presenter
the view is an interface with setTitle and showError on it, and the presenter is what you actually unit test.
A variant of MVC where the view is passive and holds no logic, and a presenter reads from the model and pushes formatted values into it through an interface. The point is testability: the presenter can be tested against a fake view with no UI framework at all. It costs a method on the view interface for every field on the screen, which is why it faded once binding-based approaches arrived.
Full entry →