理解MVC、MVVM、RAC开发模式

来源:互联网 发布:淘宝外宣语言 编辑:程序博客网 时间:2024/05/16 08:54

一直以来都是在用Apple官方给出的开发模式mvc进行开发工作,而受到各方大神的影响开始逐步了解、学习MVVM、RAC。现在将自己的一些了解做整理

MVC:Controller是控制器层,它是核心,即对View层进行操作也对Model层进行操作,但是View层和Model层又互相没有关联。View只负责页面的展示,Model只是数据的存储,这样就导致Controller要处理数据,还负责view的管理以及事件的传递,连网络请求是控制器在做。

缺点: MVC比较明显的缺点就是如果业务复杂起来,再加上其他乱七八糟的验证,controller就会变得很大,越来越难以维护,变的臃肿。


MVVM:既然MVC会导致越来越臃肿,越来越难以维护,那相对于比较复杂、庞大的项目就不太合适了,为了便于维护,后面就出来了MVVM。ViewModel是将逻辑代码、网络请求等都写入其中,说白了就是新加了一个ViewModel来分担Controller压力,将部分代码在这里实现,这就达到减少Controller的臃肿问题。

例如这样:

  • ViewController 界面控制器存放处(这是文件夹名)
  • ViewModel 专业分担的(Model、网络请求、处理业务逻辑等)
  • View 界面相关View存放处(界面相关子View)
  • Model 数据模型存放处(各种单纯的数据模型,一点都不胖,是标准的瘦Model)缺点:文件多,

    既然MVVM可以调用网络、更改UI,那么它如何将数据回调到Controlller中呢,或许我们会有我们比较熟悉机制KVO方法、通知、Block、代理等,但是这些都显得有点厚重,ReactiveCocoa能解决这些问题。


    RAC:ReactiveCocoa 可以说是结合了函数式编程和响应式编程的框架,也可称其为函数响应式编程框架,关于它知识点是真的太丰富了,自己了解得只能说是冰山一角,后续我会专门针对RAC进行讲解。MVVM+RAC能更好的解耦,减少代码复杂度,使代码层次分明、逻辑清晰便于维护升级。

  • 0 0
    原创粉丝点击