yysun's space

Controller is NOT to separate the View from the Model

Posted on: February 10, 2008

I used to think controller in MVC is to separate the view and the model, until I saw this blog An Introduction to the Model-View-Controller, Model-View-Presenter, and Presentation-Abstraction-Control Patterns where Derek Greer wrote,

One common misconception about the relationship between the MVC components is that the purpose of the Controller is to separate the View from the Model. While the MVC pattern does decouple the application’s domain layer from its presentation layer, this is achieved through the Observer Pattern, not through the Controller. The Controller’s job is to mediate between the human and the application, not between the View and the Model.

While the original idea of the Presenter was seen by the Taligent team as a Controller elevated to an application level, the Dolphin team mistakenly considered it a replacement of the VisualWorks’ Application Model and maintained the Presenter as a mediating component within the triad.

  • In MVC, controller is the human to model connector (intercepts user input).
  • In Taligent MVP, the presenter is the subsystem component connector (manages application subsystems).
  • In Dolphin MVP, the presenter is the presentation to domain connector (manages access to model updates).
  • In Passive View, the presenter manages presentation logic.
  • In Supervising Controller, the presenter assists with presentation logic.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


    • Pk: The horizontal view is a pleasure to use! Good thinking
    • randyburden: A valiant and commendable effort. Your use of Tuple is a little weird but it offers a feature that most other microORMs don't. Your use of a static Gu
    • reav: great work done on Rabbit Framework. just started to learning it, and by now i think it will solve all my problems and questions, that i had in webpag


    %d bloggers like this: