by gesf » Sun Dec 18, 2005 9:40 pm
MVC stands for Model, View, Controller.
It is a commonly used and powerful architecture for GUIs.
MVC is best described as what is often known as a design pattern. A design pattern is best defined as a description of a reusable solution to a recurring problem given a particular context.
In this case (OOP), MVC is the solution to best separate the user ontrol of a program (the controller), its output (the view), and its inner processing and decision-making (the model) into a manner whereby they represent three distinct, separable components.
MVC in Web Applications
MVC is considered bu some to be the evolution of IPO (Input, Processing, Output), which was the best-practice model applied to the linear, text-only applications of yesteryear.
The model is represented by your suite of classes, assuming that you have followed an object-oriented approach in your application. In any web language this classes perform the core communication with any external data source, make critical application decisions, and perform parsing and processing on both input and output.
The view is represented by the web browser, or rather what is displyed in it. Upon making a request, be it a simple request for a page or an introdution to update or query a database, the output determined by the model is actually displyed by the web browser.
The controller is also represented by the web browser or rather the users' actions within it. Whether just a series of links or a comples form, the GET and POST requests made by the users' browser represente the effort to get data into the model in the first place.