MVVM代码重构规范
来源:互联网 发布:尼采著作全集 知乎 编辑:程序博客网 时间:2024/06/06 05:14
为了便于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,反之亦然;如果是新开发的模块,则按自己的偏好来选择。
- MVVM代码重构规范
- Android代码重构之命名规范
- 机房重构--代码规范学习
- 代码重构-关于命名规范
- 小菜编程成长记(二 代码规范、重构)
- 小菜编程成长记(二 代码规范、重构)
- 小菜编程成长记(二 代码规范、重构)
- 大话设计模式(二 代码规范、重构)
- Android app重构:mvp和mvvm
- 重拾编程- 第一季 代码规范
- API规范与重构
- 网站重构技术:XML,XHTML代码规范,样式表调用方式,CSS布局要点
- (转帖)小菜编程成长记(二 代码规范、重构)
- android代码重构日记(一)——命名规范
- android代码重构日记(一)——命名规范
- 聊聊HTML静态页面编码规范和前端代码重构
- [ 重构 ] 代码重构!
- 【规范代码】关于vector的去重及排序
- oracle 11g 之LogMiner分析重做日志实践
- [一起学Hive]之十一-Hive中Join的类型和用法
- c++第五次作业
- 设计模式C++学习笔记之十六(Observer观察者模式)
- C++ 模板
- MVVM代码重构规范
- iOS WebRTC
- 线性表的基本概念
- 非标准武术擂台1V1机器人示例程序
- txt导入到mySQL
- C++作业5
- 表单实现表单自动生成工厂
- iOS之修改项目BUG之旅--(三)
- C++作业5