The Model-View-ViewModel pattern
The Model-View-ViewModel pattern or MVVM tries to go further in reducing the dependencies among the presentation pattern components. This pattern introduces the ViewModel component that substitutes the Presenter. Of course, it is more than a simple renaming. Let's try to understand how it works by comparing it to the MVP pattern.
Just like with MVP, the View is totally unaware of the existence of the Model. But while in the MVP pattern, the View was aware that it was talking to some intermediate component. In the MVVM pattern, the View believes that the ViewModel is its Model. Instead of asking the Presenter to bind data and manipulate the Model, the View manages its own Model represented by the ViewModel. It acts as a wrapper around the actual Model and makes some consistency validations and other activities concerning the management of data.
The following image outlines the interactions between the components of the MVVM pattern:
Let's take a look at how we...