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.