What:
An Software Engineering architecture that splits an application into 3 parts:
- Model: Manages the data and domain logic. Usually interacts with database, input file etc.
- View: Defines how the data is presented to the users.
- Controller: Receives input from the user, handles application logic, acts as a middleman between model and view.