IOS 关于 mvvm个人理解

记录下自己对于mvvm的理解,由于网上一堆关于mvvm的定义不在赘述,只记录自己在项目使用的理解和使用方式

1:在每个模块中,创建四个文件夹,分别为Controller Model ViewViewModel,结构如下图
支付历史记录模块

2:controller 毫无疑问在这里放相关的控制器,在控制器中实现对视图的管理, 包括 控制器生命周期的管理, 导航控制器的设置, 子视图的初始化, 子视图的各种事件处理和页面跳转等和view操作相关的处理,但不要添加对业务逻辑的处理,结构如下图所示,其中刷新表格并没有在controller本身去进去网络请求,而是从viewModel中获取网络请求的数据,然后在刷新展示表

controller方法结构

3:viewModel 在这里处理 业务逻辑, 包括数据的刷新, 各种代理方法的实现, 子视图的数据绑定等操作. 然后通过block方式通知controller子视图的响应事件,让controller去做相应的页面处理(PS:页面跳转), 这里不建议使用通知去主动通知controller,而应该用block等待controller根据需要主动去viewModel获取,毕竟viewModel是为了给controller提供方便,并不清楚controller在什么时机需要什么样的数据. viewModel结构图如下:

viewModel.h

viewModel.m

4:view 这里存放一些只有本模块使用到的子视图,如果有些视图在其他模块中也有用到建议放到工具类里面,再次不做描述.

model 数据模型类 在这里存放模块将要用到的数据,方便操作.

这两个和mvc中的作用一致,再次不多做描述

因为是项目模块,所以不妨Demo了,如有错误或者建议欢迎提出,共同学习共同进步!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容