一:MVC
含义:MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
Model(模型) - 模型代表一个存取数据的对象。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型,并在模型变化时更新视图。它使视图与模型分离开。
总结:苹果的初衷是通过controller将view与model分开。其实现在很难将view 与 model 分离开来。想象一下,如果view的setModel是在controller上实现的,那么代码controller会变得及其臃肿。
优点:现在很多人已经熟悉这种开发模式了,代码可读性与维护比较方便,开发速度和维护相对有优势;
二:MVVM
含义:MVVM模式是Model-View-ViewMode模式的简称。由视图(View)、视图模型(ViewModel)、模型(Model)三部分组成,通过这三部分实现UI逻辑、呈现逻辑和状态控制、数据与业务逻辑的分离。
原理:通过controller把view与model绑定在viewModel上
viewModel可以做网络请求、数据缓存、逻辑任务
优点:controller可以比较瘦,便于对viewModel进行单元测试,可重用性,独立开发性相对较好
缺点:崩溃调试堆栈信息相当多,不易定位;对开发者要求较高,需要知道其内部原理;相对不易维护;
三:MVP
Model-View-Presenter
优点:可测试性最高
缺点:代码量大