In the world of software development, programmers will make use of 'patterns' as a form of programming template.
By defining and segregating certain forms of functionality, code reuse and modularity can be enhanced. One regularily
recurring form of functionality involves some form of data collection (a model), some form of view of the data (a view), and
some form of interaction with the view and data (a controller). This collection has been defined as a
the Model-View-Controller (MVC) pattern.
The best diagram I've found which depicts the relationships between these three sets of functions can be
found at
Designing Enterprise Applicationswith the J2EETM Platform, Second Edition. I've included the diagram here: