Model-View-Controller Pattern

Application data and logic (encapsulated by the model) should be independent of presentation logic (encapsulated by the views and controllers):

Views are responsible for user input and output. A dialog box is a good example of a view. Controllers implement the logic for the allowable transactions that can be performed on the model. The model encapsulates the fine grained business logic and data.

Here's a sequence diagram showing the interaction: