MVVM
来源:互联网 发布:放置江湖武功最新数据 编辑:程序博客网 时间:2024/06/15 10:33
1.MVVM 是 MVC 模式的一种演进,它主要解决了 ViewController 过于臃肿带来的不易维护和测试的问题。其中 ViewModel 的主要职责是处理业务逻辑并提供 View 所需的数据,这样 VC 就不用关心业务,自然也就瘦了下来。ViewModel 只关心业务数据不关心 View,所以不会与 View 产生耦合,也就更方便进行单元测试。
2.View 是一个壳,它所呈现的内容都需要由 ViewModel 来提供,而 View 又不与 ViewModel 直接沟通,这时就需要 ViewController 来做中间的协调者。ViewController 持有 View 和 ViewModel,当 VC 初始化时,会让 ViewModel 去取数据,简单来说就是调用 VM 的某个获取数据的方法,当 ViewModel 拿到数据后,可以把结果以 Delegate 的方式通知 VC,这样做的好处是比较符合苹果既有的设计模式,而且也可以通过查看 Delegate 协议来知道 VM 暴露了哪些接口供外部使用。
Tips
ViewController
尽量不涉及业务逻辑,让ViewModel
去做这些事情。ViewController
只是一个中间人,接收View
的事件、调用ViewModel
的方法、响应ViewModel
的变化。ViewModel
不能包含 View,不然就跟 View 产生了耦合,不方便复用和测试。ViewModel
之间可以有依赖。ViewModel
避免过于臃肿,不然维护起来也是个问题。
阅读全文
0 0
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- mvvm
- MVVM
- MVVM
- mvvm
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- MVVM
- 给考勤系统添加配置文件
- Android Gradle使用笔记
- 【Scikit-Learn 中文文档】寻求帮助
- synchronized同步方法
- 【安全牛学习笔记】EVIL TWIN AP、ROGUE AP
- MVVM
- update语句报错 statement transaction required more than 'max_binlog_cache_size' bytes of storage
- C#操作sql server数据库 ADO.NET
- ES6学习笔记let和const命令
- 转载--调用摄像头(兼容7.0)
- vue2+vuex+vue-router 快速入门(一) 简单介绍
- Ubuntu开机自启ROS节点或执行命令
- Css Sticky footer布局
- C# 类,私有公有属性,继承