--- layout: pattern title: Model-View-Controller folder: model-view-controller permalink: /patterns/model-view-controller/ categories: Presentation Tier tags: Java --- **Intent:** Separate the user interface into three interconnected components: the model, the view and the controller. Let the model manage the data, the view display the data and the controller mediate updating the data and redrawing the display. ![alt text](./etc/model-view-controller.png "Model-View-Controller") **Applicability:** Use the Model-View-Controller pattern when * you want to clearly separate the domain data from its user interface representation