MVC介绍

这是应用层架构系列的文章

简述 MVC, MVP, MVVM 和 VIPER 这篇是网上各种转载的总结,有不足的地方。

从MVC到viper 这篇的博主分析的很好

浅谈 MVC、MVP 和 MVVM 架构模式 这篇大佬的文章

1.MVC

mvc是最出名并且应用最广泛的架构模式。MVC的目的是为用户提供直接看到信息和操作信息的功能。

在不同语言中,MVC的定义不同(见引用的第三篇文章)MVP和MVVM等都是MVC的变种。

  • MVC分为Model,View,Controller。
  • View是展示的界面。
  • Model是数据模型,有fatModel,和thinModel之分。(model是单纯的数据结构,还是需要处理逻辑)。
  • Controller负责协调Model和View。
2 iOS的实际的MVC的情况:
iOS-MVC

iOS的实际情况是:controller持有和管理View,controller和View耦合在一起。

我们使用iOS的MVC的时候,会造成controller繁重。原因是controller需要做的工作太多:

  • controller持有和管理View的整个生命周期,处理view的创建,布局等。
  • view的需要显示数据的组装。
  • view逻辑响应和处理。
  • 网络请求的发起和取消。

iOS的MVC在开发中存在的问题是:

  • 最重要的是繁重的视图控制器(原因上边有说)
  • 难以测试(因为视图操作和业务逻辑混在了controller中,难以测试)
  • 缺少网络逻辑(放在model中不合适,因为网络是异步的,放在view中,很不合理,放在controller中,造成繁重的控制器视图)
    -责任模糊(一段逻辑代码,不知道应该放在model,还是controller中)
3. 解决方式是:

使用别的应用层的架构MVP,MVVM,VIPER等。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容