Simple Difference: (Inspired by Yaakov's Coursera AngularJS course)
MVC (Model View Controller)
- Models: Models contain data information. Does not call or use Controller and View. Contains the business logic and ways to represent data. Some of this data, in some form, may be displayed in the view. It can also contain logic to retrieve the data from some source.
- Controller: Acts as the connection between view and model. View calls Controller and Controller calls the model. It basically informs the model and/or the view to change as appropriate.
- View: Deals with UI part. Interacts with the user.
MVVM (Model View View Model)
ViewModel:
- It is the representation of the state of the view.
- It holds the data that’s displayed in the view.
- Responds to view events, aka presentation logic.
- Calls other functionalities for business logic processing.
- Never directly asks the view to display anything.