iOS_2022_设计模式
iOS设计模式和架构(1)-MVC、MVP、MVVM、VIPER
一、摘要
MVVM:View和ViewModel直接双向绑定
二、MVC、MVP、MVVM介绍
- MVC
● Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法)
● View: 视图(渲染页面)
● Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)
数据模型与业务和展示逻辑解耦
用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View):
- MVP
M、V、P之间双向通信
View 与 Model 不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。
Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,这样就可以重用。
- MVVM
View与ViewModel双向绑定
三、实际应用
- MVP
IOS (oc) 浅谈MVP在ios项目中的使用以及Demo
P中可以:弹框、跳转页面等
业务层可以仿照UserLogin
- MVVM
//ViewController 与 ViewModel映射的类
LPDViewControllerFactory
//将ViewController和ViewModel匹配
+ (void)setViewController:(NSString *)viewControllerClass forViewModel:(NSString *)viewModelClass;
//获取ViewController
+ (UIViewController *)viewControllerForViewModel:(id)viewModel;