iOS开发笔记>> MVVM和MVC设计模式的分析
2016-08-08 18:59
232 查看
MVC:
Model, View, Controler
view (UI 层): view 只负责展示从 controller 接受到数据. 也就是把 model 转化成 UI
model (数据层): 不能直接与 controller 通讯, 因为 model 是独立于 UI 存在的
controller: 通过 view 来接受用户的输入, 之后利用 model 来处理用户数据, 最后把结果返回给 view. 它是 view 和 model 之间的一个协议者.
controller, view, model 各司其责互不干扰
存在的问题:
模型(model)代码很少
控制器(controller)的代码一不小心就越来越多
不好测试
MVVM:
Model, viewModel, view和Controller
MVVM 中, view 和 viewController 正式联系在一起, 把他们视为一个组件
view 和 viewController 都不能直接引用 model, 而是引用视图模型
viewModel 是一个放置用户输入验证逻辑, 视图显示逻辑, 发起网络请求和其他的代码
MVVM 模式关键点:
用户和 view 交互
view 和 viewModel 是多对一关系. 意味着一个 viewModel 只映射多个 view
view 持有 viewModel 的引用, 但是 viewModel 没有任何 view 的信息
view 和 viewModel 之间有双向数据绑定关系
Model, View, Controler
view (UI 层): view 只负责展示从 controller 接受到数据. 也就是把 model 转化成 UI
model (数据层): 不能直接与 controller 通讯, 因为 model 是独立于 UI 存在的
controller: 通过 view 来接受用户的输入, 之后利用 model 来处理用户数据, 最后把结果返回给 view. 它是 view 和 model 之间的一个协议者.
controller, view, model 各司其责互不干扰
存在的问题:
模型(model)代码很少
控制器(controller)的代码一不小心就越来越多
不好测试
MVVM:
Model, viewModel, view和Controller
MVVM 中, view 和 viewController 正式联系在一起, 把他们视为一个组件
view 和 viewController 都不能直接引用 model, 而是引用视图模型
viewModel 是一个放置用户输入验证逻辑, 视图显示逻辑, 发起网络请求和其他的代码
MVVM 模式关键点:
用户和 view 交互
view 和 viewModel 是多对一关系. 意味着一个 viewModel 只映射多个 view
view 持有 viewModel 的引用, 但是 viewModel 没有任何 view 的信息
view 和 viewModel 之间有双向数据绑定关系
相关文章推荐
- <转> ios开发学习笔记(这里一定有你想要的东西,全部免费)
- iOS开发>学无止境 - 异步图片加载优化与常用开源库分析
- iOS开发笔记>> Quartz2D简单介绍
- iOS开发笔记>> runTime 运行时机制简介
- iOS开发笔记>> IBOutlet连出来的视图属性为什么可以被设置成weak?
- 【笔记】iOS开发基础笔记<—>
- iOS开发笔记>> UIButton与UITableView的层级结构
- iOS开发笔记>> Core Animation(核心动画)
- iOS开发笔记>> 如何渲染自定义格式字符串的UILabel
- iOS开发笔记>> 什么时候会报 Unrecognized selector 的异常?
- iOS开发基础笔记-算法<三>
- iOS开发笔记>> 下拉刷新,自定义UIControl
- iOS开发学习笔记——表格4(UITableView)->自定义单元格(UITableViewCll)
- iOS开发笔记>> KVC 和 KVO 简介
- IOS开发笔记:编译时出现的错误<1>
- iOS开发笔记---SDWebImage分析
- 【笔记】iOS开发基础笔记<四>
- iOS开发笔记>> GCD调度组的使用
- iOS开发笔记>> 简述UItableView 的复用机制
- iOS开发笔记>> storyboard 项目中控件 installed 属性简单介绍