MVC
苹果推荐的架构模式,即Model-View-Controller
弊端:
- 厚重的ViewController
- 无处安身的业务逻辑和网络请求
- 较差的可测试性
MVVM
从MVC引申出来的一种维护性较强、耦合性低的新架构,即Model - View - ViewMode
优势:
- 低耦合:View 可以独立于Model变化和修改,一个 viewModel 可以绑定到不同的 View 上
- 可重用性:可以把一些视图逻辑放在一个 viewModel里面,让很多 view 重用这段视图逻辑
- 独立开发:开发人员可以专注于业务逻辑和数据的开发 viewModel,设计人员可以专注于页面设计
- 可测试:通常界面是比较难于测试的,而 MVVM 模式可以针对 viewModel来进行测试
注意:view 引用viewModel ,但反过来不行(即不要在viewModel中引入#import UIKit.h,任何视图本身的引用都不应该放在viewModel中)
MVP
附: