- View: just show UI
- ViewModel: model for the view (use protocol limit what the ViewModel must supply)
- ViewController: choose what model to ViewModel and View use what ViewModel
- https://medium.com/@ramshandilya/lets-discuss-mvvm-for-ios-a7960c2f04c7#.b7pn499q9
- 设计模式的四大原则(单一职责,依赖倒转,开放封闭,最少知识)
