MVC&MVVC

作者: 绍清_shao | 来源:发表于2020-04-20 09:12 被阅读0次

MVC

单项数据流

  • View上用户行为导致Model更新

用户的行为,有些会导致model的更新,View会通过Target-Action或者代理,让View Controller去更新Model,View Controller一般直接持有View和Model。

  • Model更新,导致View上更新

Model一般是跟View Controller解耦,Model更新完后,会利用通知、回调、代理或者KVO的方式通知View Controller,然后让View Controller去更新View的显示

  • View Controller

有些不需要Model的View State需要View Controller中存储,View Controller协调交互逻辑和表现逻辑,还有管理导航跳转

MVVC

单项数据绑定

  • MVVC与MVC不同的地方

MVVC在View Controller与Model之间多了层View Model。View上用户行为导致Model更新,View Controller会让自己持有的View Model去更新Model。

  • Model更新,导致View上更新

View Model会监听Model的更新,Model依然跟其他角色解耦。只能通过代理、通知、回调或者KVO的方式去通知自己状态的变化。View Model知道Model变化后会

  • View与View-Model

为了保证View与View-Model的同步,需要让一个对象中的属性绑定另外一个对象中的属性,达到同步的目的。在Controller中会让view-model中暴露的属性绑定view中对应场景的属性。

  • 属性关联

用响应式编程框架可以达到这种目的,另外只基于Foundation的键值观察(KVO)的绑定也可以实现属性关联

网络层应该放到哪层

MVC中,如果controller处理网络,会使不同view controller之间进行数据共享变的困难,所以如果由model拥有model可以解决这个问题,另外还能将网络获取的数据进行离线缓存

参考书籍

《App 框架》-- obj.com

相关文章

  • MVC&MVVC

    MVC 单项数据流 View上用户行为导致Model更新 用户的行为,有些会导致model的更新,View会通过T...

网友评论

      本文标题:MVC&MVVC

      本文链接:https://www.haomeiwen.com/subject/fumhihtx.html