Improved reusability

As we've seen with testing, the MVVM pattern encourages the proper isolation of the different components. Not unlike MVC, it encourages the following:

We've also seen that most of the views have been reused, between the MVC example and this one. We only needed to refactor theĀ ViewController from the MVC example into the MainView class.

The refactor was required because the view layer in the MVVM pattern has to be bound to ViewModel. In practice, you'll mostly use UIViewController and NSViewController, in order to hold viewModel, as it fits very well into the philosophy of Cocoa, UIKit, and AppKit.