您的位置:首页 > 其它

理解MVC、MVVM、RAC开发模式

2016-08-24 17:46 155 查看
一直以来都是在用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能更好的解耦,减少代码复杂度,使代码层次分明、逻辑清晰便于维护升级。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: