MVC is an architectural design pattern that is used to develop applications.
It states that the application should be logically divided into 3 components namely: model, view, and controller.
The model layer is responsible for handling data. It is connected to the data source and helps in performing data-related operations
The view layer is responsible for handling the view logic or you can say representation of data as a User Interface.
The controller layer is responsible for handling the communication between the view and the model. It receives a request from the user then based on the requirement it communicates with the model and view layer and returns the expected response.
- Separation of concerns
- Some level of reusability for controller and data layer.
- Easier to maintain
- Easier to test individual layers
- Increased complexity as the app grows
- Data accessibility in the view layer becomes inefficient with app growth