MVVM代码重构规范

为了便于MVVM重构后代码维护方便,特制定以下规范:
一、职责:
VC(即ViewController)的职责:
1)处理页面布局以及页面的生命周期(viewDidLoad,ViewWillAppear等)
2)响应页面上的所有交互,包括按钮点击、手势等
3)监听VM中数据的变化,订阅信号,根据信号的内容来作出相应的变化。
4)管理与页面相关VM的创建和销毁
VM(即ViewModel)的职责:
1)处理网络请求、读写本地缓存,以及这些操作相应的视图逻辑(包括提示框、页面跳转等)的信号输入
2)保存视图展现所需的数据,包括在VC初始化时需要的数据
3)处理不依赖于页面的其他逻辑(比如保存登录过的用户名)
二、创建VM的一些规则:
1)一种类型的业务只创建一个VM
2)一个页面对应多种业务的,可以创建多个VM
3)划分的粒度要尽量细,做到相似的业务逻辑可使用同一个VM。可以按照网络接口来划分。(如QMLoginVM)
三、VC与VM的通信方式:
通过ReactiveCocoa 的信号进行挂接
1) 网络请求统一用RACSignal处理,在signal的block中执行请求,收到响应后再发送next信号,传递status给VC。status不用保存在VM中。
2)VC中订阅signal,根据next信号的status值,来进行相应的操作。
3)提示框的显示或关闭、按钮的enable状态等可以单独使用RACSubject信号来处理, 由VM中输入信号,VC中订阅。
4)对于tableView所需的数据,统一在VM中保存数据,VC中通过RACObserve或者KVO进行监听。
四、block与delegate
网络框架同时支持block和delegate两种方式,开发时按模块来区分,如果之前的代码是用delegate,就继续用delegate,反之亦然;如果是新开发的模块,则按自己的偏好来选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值