MVP
把viewController 当成view,负责UI布局,而Presenter负责更新View的数据和状态。
优点:测试性强,使而测试大多数业务逻辑变得简单。任务均摊,最主要的任务划分到Presenter和Model,而view的功能较少。
缺点:代码量是MVC模式的2倍。
MVVM: 利用双向绑定技术,使得Model变化时,ViewModel会自动更新,而ViewModel变化时,View也会自动变化。具体在iOS中,可以使用KVO或Notification技术达到这种效果。
缺点:1:数据绑定使得Bug很难被调试。你看到界面异常了,有可能是你View的代码有Bug,也可能是Model的代码有问题。
2:对于过大的项目,数据绑定需要花费更多的内存。