Model View Controller
(MVC) A way of partitioning the design of interactive
software. The "model" is the internal workings of the program
(the {algorithm}s), the "view" is how the user sees the state
of the model and the "controller" is how the user changes the
state or provides input.