The Model-View-Controller Architecture

The Model-View-Controller Architecture is commonly used by desktop applications such as word processors and spread sheets.

The principle behind the pattern is this:

Application logic should be independent of presentation logic

There are three components:

The view is the user interface. It sends commands to the controller for execution. To do this, the controller must interact with the model, which encapsulates application data and logic.

Here's a typical interaction:

Other Names

Some developers fold the controller into the view, and thus the pattern is also called the Model-View pattern. Microsoft calls the model the document and thus the pattern is also known as the Document-View pattern.

Elaborations

Several component patterns are commonly used to implement the MVC components:

Composite

Decorator

Strategy

Command Processor

Memento

Publisher-Subscriber

Facade