A *(user interface) architecture originating in the 1970's in the Xerox _(Smalltalk) system, where three objects play roles that combine into proper elements on the screen:

<dl>
<dt>The Model</dt>
<dd>The domain object in question, or some representation of it. This is a non-graphical (usually) object which did not have to know about presentation aspects or other semantics of the terminal.</dd>
<dt>The View</dt>
<dd>This object rendered the model on the screen, managing update to the screen and the general display. The view must be notified whenever some significant aspect of the model changes.</dd>
<dt>The Controller</dt>
<dd>This object handles the events between the user and the application: it maps incoming events to behavioral actions that the View or even the Model exhibits, causing them to be invoked on user request.</dd>
</dl>

See _(this tutorial explanation| http://www.object-arts.com/EducationCentre/Overviews/MVC.htm).

See _("Applications Programming in Smalltalk-80(TM): How to use Model-View-Controller (MVC)" | http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html) by Steve Burbeck, Ph.D.