[ACCEPTED]-What is MVC (Model View Controller)?-glossary
You might want to take a look at what Martin 2 Fowler has to say about MVC, MVP and UI 1 architectures in general at Martin Fowlers site.
I like this article by Martin Fowler. You'll see that 10 MVC is actually more or less dead, strictly 9 speaking, in its original domain of rich 8 UI programming. The distinction between 7 View and Controller doesn't apply to most 6 modern UI toolkits.
The term seems to have 5 found new life in web programming circles 4 recently. I'm not sure whether that's truly 3 MVC though, or just re-using the name for 2 some closely related but subtly different 1 ideas.
MVC is a design pattern originally pioneered 11 in the olden days of smalltalk.
The concept 10 was that a model would represent your application 9 state and logic, and controllers would handle 8 IO between "Views".
A View was a representation 7 of the state in the model. For example, your 6 model may be a spreadsheet document, and 5 you may have a view that represents it as 4 a spreadsheet and a view that represents 3 it as a pivot table.
Modern MVC has been 2 polluted with fake MVC web junk, so I'll 1 let others answer that.
Here is a naive description of MVC : http://www.devcodenote.com/2015/04/mvc-model-view-controller.html
Definition 10 : It is a design pattern which separates 9 an application into multiple layers of functionality.
The 8 layers:
Model Represents data. It acts as 7 an interface between the database and the 6 application (as a data object). It will 5 handle validations, associations, transactions 4 etc.
Controller It gathers and processes 3 data. Handles code which does data selection 2 and data messaging.
View Displays output 1 to the users.
MVC Design Pattern:
4 parts = User, View, Controller, Model.
User: - sees 8 the View and uses the Controller.
Model: - holds 7 the data and updates the Model that there 6 is new data/state.
View: - displays the 5 data that the Model has.
Controller: - takes 4 the request from the user to get or set 3 information, then communicates with either 2 the View or Model, resp. - it "gets" via 1 the View. - it "sets" via the Model.
As the tag on your question states its a 21 design pattern. But that probably doesn't 20 help you. Basically what it is, is a way 19 to organize your code into logical groupings 18 that keep the various pieces separate and 17 easily modifiable.
Simplification: Model 16 = Data structure / Business Logic View = Output 15 layer (i.e HTML code) Controller = Message 14 transfer layer
So when people talk about 13 MVC what they are talking about is dividing 12 up there code into these logical groups 11 to keep it clean and structured, and hopefully 10 loosely coupled. By following this design 9 pattern you should be able to build applications 8 that could have there View completely changed 7 into something else without ever having 6 to touch your controller or model (i.e. switching 5 from HTML to RSS).
There are tons and tons 4 of tutorials out there just google for it 3 and I'm sure you'll turn up at least one 2 that will explain it in terms that click 1 with you.
Wikipedia seems to describe it best so far:
Model-view-controller 16 (MVC) is an architectural pattern used in 15 software engineering. Successful use of 14 the pattern isolates business logic from 13 user interface considerations, resulting 12 in an application where it is easier to 11 modify either the visual appearance of the 10 application or the underlying business rules 9 without affecting the other. In MVC, the 8 model represents the information (the data) of 7 the application and the business rules used 6 to manipulate the data; the view corresponds 5 to elements of the user interface such as 4 text, checkbox items, and so forth; and 3 the controller manages details involving 2 the communication to the model of user actions 1 such as keystrokes and mouse movements
The MVC or Model-View-Controller User Interface 4 Paradigm was first described by Trygve Reenskaug 3 of the Xerox PARC. In first appeared in 2 print in Byte magazine volume 6, number 1 8, in August of 1981.
This What is MVC blog article on Oreilly has you covered.
MVC is a software architecture pattern that 5 separates representation from user interaction. Generally, the 4 model consists of application data and functions 3 that interact with it, while the view presents 2 this data to the user; the controller mediates 1 between the two.
More Related questions