The Model-view-controller design pattern is a pretty important pattern to learn and understand if you are interested in Web/cloud and mobile programming. This design pattern allows you to architect your applications by dividing them into three main components:
1) The Model – Which represents the data
2) The View – Which provides a visual, graphic or any other kind of “view” of the data
3) The Controller – Which controls the view
The Model and View components do not directly talk to each other. They always communicate via the controller. This separation between the data and the view makes it very easy to manage the application and add/modify functionality. For instance if your data is represented as a bar chart, then the data would be the model and the bar chart would be the view. Also, the Bar Chart would be rendered and managed by a controller object or component. Now if you need to represent your data as a Pie chart instead, all you have to do is create a new view (for the pie chart) and/or a controller to manage the pie chart. The model component does not have to change.