By Trygve Reenskaug - Trygve Reenskaug, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=31168223
Something that is of interest to the user. It could be concrete, like a house or an integrated
circuit. It could be abstract, like a new idea or opinions about a paper. It could be a whole,
like a computer, or a part, like a circuit element
Models represent knowledge. A model could be a single object (rather uninteresting), or it
could be some structure of objects.
A Model is an active representation of an abstraction in the form of data in a computing
system
A view is attached to its model (or model part) and gets the data necessary for the presentation
from the model by asking questions...
To any given Model there is attached one or more Views, each View being capable of
showing one or more pictorial representations of the Model on the screen and on hardcopy.
... the view will therefore have to know the semantics of the attributes of the model it represents.
A controller is the link between a user and the system. It provides the user with input by
arranging for relevant views to present themselves in appropriate places on the screen. It
provides means for user output by presenting the user with menus or other means of giving
commands and data.
A controller should never supplement the views...
Conversely, a view should never know about user input, such as mouse operations and
keystrokes.
... so many of them, doing the exact same thing ...