Model–view–controller (MVC) is a software architecture which is used to separate the business logic and application data from the presentation layer to the user .It follows Three-tier architecture.
- Model–view–controller (MVC) architecture is reusable
- Model–view–controller (MVC) architecture is Expressive
Model : The model represents enterprise data and the business rules that govern access to and updates of this data . That mean Model is fully responsible to the enterprise data and rules to access .
The Model object knows about all the data that need to be display or manage .Model object is not responsible for how that data will be displayed to the browser or any software . It is aware about all the operation that can be applied to transform that enterprise data .
View : It represents the presentation layer of the application by which user can interact with the system or software. It refers to the model objects via controller . It uses the query methods of the model objects to obtain the contents or data to show in presentation layers.
It is not depends on application logic ,it remains same if there is any change in business Logic .
View maintain the consistency of presentation layer when the model object changes .
Controller : Whenever A User sends a requests for some data from View then it always went through the controller .
Controller is responsible for accepting the request from view and passes it to the model for appropriate action to be taken .
After the action has been taken on data by Model ,the controller us responsible for sending the requested data to appropriate view to the user .
Many open sources are running with MVC Architecture, some of the CMS and framworks are listed below :
- Java script MVC
- Spring MVC (Java)