MVC介绍

作者: 你weixiao的时候很美 | 来源:发表于2018-04-24 15:14 被阅读8次

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

    简述 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等。

    相关文章

      网友评论

          本文标题:MVC介绍

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