A software design pattern is a general, reusable solution to a commonly occurring problem in software design. It provides a template to be used to solve similar problems in various situations. Design patterns can help speed development by providing tested and proven paradigms.
The Model-View-Controller is a high-level software design pattern which is commonly used when user interfaces are involved and is very popular among web applications. In such a pattern, the program is divided into three separate, yet interconnected components:
- The Model is the application's dynamic data structure and is responsible for managing data and logic
- The View provides a representation of information to the user. In some cases multiple views are possible for the same information.
- The Controller receives input and issues commands to the Model or View
- [Software Design Pattern] (Wikipedia)