MV*

共通点:在 View 与 Model 直接增加一个隔离层,解除强耦合关系

MVC

View -> Controller -> Model 单向调用,Model 更新时通过监听器通知 View 界面,由 View 再次发起调用链获取最新数据

缺点:

  • View 部分逻辑的测试困难
  • View 与 Model 之间存在监听器的耦合,造成分离重用困难
  • 后期难以追踪分析、整理 Model 与 View 的互动关系

MVP

View <-> Presenter <-> Model 双向调用,一切业务逻辑调度全部交由 Presenter 负责,Model 更新时,监听事件将发送至 Presenter 进行处理,最终调度 View 进行数据绑定渲染

缺点:
Presenter 需要手工同步数据更新与 View 绑定,工作量大,维护困难

MVVM

View <-> ViewModel <-> Model 双向调用,ViewModel 即是通过某种数据绑定引擎,将 View 与 Model 进行自动化双向绑定,减轻手工编辑绑定 Presenter 的工作量

缺点:
数据绑定过程由引擎自动生成,无法通过断点调试

参考:http://www.jianshu.com/p/6a86f7fdc0cb

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 深入了解MV**模式 前言:做客户端开发、前端开发,大致都应该听说过这么几个名词MVC、MVP、MVVM,这些架构...
    关玮琳linSir阅读 1,169评论 1 13
  • 前言 相信很多iOS开发者从学习iOS开始就是用的MVC架构,因为Apple推荐使用MVC,原因:上手快,且开发效...
    大大盆子阅读 714评论 0 0
  • 还原真实的MV*模式 职责分离的思想Model + View MVC Controller处理Model和View...
    寿_司阅读 399评论 0 0
  • 鉴于上篇文章在上周五会议上被问到一些基础性问题时引发了一些碰撞搞得我好尴尬,这篇我尽量写的完备一些,但是我不写示例...
    Troubleshooting阅读 326评论 0 1
  • 1. 这是一段发生在上大学时候的事。 室友a是一个成绩好长相好身材好的女孩子,但没有谈过恋爱。 按她自己的说法,觉...
    lection阅读 282评论 0 0