"A controller is the link between a user and the system." - Trygve Reenskaug, 1979 #readingToday
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. The controller receives such user output, translates it into the
appropriate messages and pass these messages on to one or more of the views.
A controller should never supplement the views, it should for example never connect theÂ views of nodes by drawing
arrows between them.
Conversely, a view should never know about user input, such as mouse operations and keystrokes. It should always be
possible to write a method in a controller that sends messagesÂ to views which exactly reproduce any sequence of user
(Moon+ Reader Pro v2.3.3, 1979-12-10-MVC.PDF