MVC stands for Model-View-Controller. It is a design pattern used in software engineering. It allows separation of concerns, which makes code easier to test, change and maintain. The Model represents the data and business logic. Usually, this is done in a separate layer outside the user interface. The View is the part of the application that the user sees and interacts with. This is the layer that we are actually designing when we design a user interface. The Controller decides which controller is the most appropriate to handle each request. When a user interacts with the user interface, it sends a request to the controller. The controller handles the request, then sends the response back to the user interface.