FACTOID # 38: Southern European women hugely outnumber their menfolk amongst the unemployed.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Model View Controller" also viewed:
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Model View Controller
This article or section should include material from Model view controller triad

Model-View-Controller (MVC) is a software architecture that separates an application's data model, user interface, and control logic into three distinct components so that modifications to the view component can be made with minimal impact to the data model component. This is useful since models typically enjoy a fair degree of stability (owing to the stability of the domain being modeled), whereas user interface code usually undergoes frequent and sometimes dramatic change (owing to usability problems, the need to support growing classes of users, or simply the need to keep the application looking "fresh"). Separating the view from the model makes the model more robust, because the developer is less likely to "break" the model while reworking the view.


The pattern was first described in 1979 (http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html) by Trygve Reenskaug, then working on Smalltalk at Xerox research labs.


Though MVC comes in different flavors, control flow generally works as follows:

  1. user interacts with the user interface in some way (e.g., user presses a button)
  2. controller receives notification of the user action from the user interface objects
  3. controller accesses the model, possibly updating it in a way appropriate to the user's action (e.g., controller updates user's shopping cart)
  4. controller delegates to the view for presentation
  5. view uses the model to generate an appropriate user interface (e.g., view produces a screen listing the shopping cart contents). Note: In some implementations, the view does not have direct access to an external model -- instead, the controller pushes the data from the external model into the view.
  6. user interface waits for further user interactions, which begin the cycle anew.

In the design of web applications, MVC is also known as a "Model 2" architecture. Complex web applications continue to be more difficult to design than traditional applications, and MVC is being pushed as a potential solution to these difficulties.


Implementations

See also

External links

  • Description in the Portland Pattern Repository (http://c2.com/cgi/wiki?ModelViewController)
  • Core J2EE Patterns - Front Controller (http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html)
  • Fusebox (http://www.fusebox.org/)
  • Maypole (http://maypole.perl.org/)
  • Ruby on Rails (http://www.rubyonrails.org/show/HomePage)
  • Model View Controller in Web Applications (http://wact.sourceforge.net/index.php/ModelViewController)

  • .mvc is also the file extension for MivaScript files.
  • MVC is Move Character in the IBM System/360 instruction set


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.