传统的MVC架构模式是:
M:Model,负责数据库及网络数据封装处理,V:View,负责视图渲染和用户交互和触摸事件,C:ViewController负责业务逻辑处理,三者的联系是Controller通过调用API请求完数据后封装成Model,然后供View层直接调用,在这里View层是直接调用model的,MVC的好处是分层架构,结构清晰,但是ViewController业务逻辑处理复杂,代码臃肿,需要处理model
然而MVP的架构模式是:
M:Model:负责数据处理,V:View视图层, P:Present层,与传统的MVC不同的是,MVP中View层并没有直接使用model层数据,而是通过中间件Present间接使用,即:Present通过Service层调用api接口后先进行数据处理和封装,然后以接口或者协议的方式通过View层将数据传给View层控制器进行使用,这样的好处是Controller层只进行业务逻辑处理,view层进行数据渲染,二Model层只负责数据解析,分工明确且解耦,缺点是:协议接口较多
MVVM的架构模式是:M:Model层负责数据库及网络数据解析,V:视图层,用于根据数据源进行UI创建和用户交互点击事件,VM:业务逻辑层,数据请求,将api数据请求的结果封装转化成view层识别的数据,一般是一个方法,最后发给View层(UIViewController,UIVIew)调用
可以理解为:api进行数据请求后进行数据解析,然后再ViewModel层转化为可以被View层识别可用的数据,进而再传给View层使用
MVC,MVP,MVVM架构比较总结
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原文: iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 开篇 iOS应用架构谈 网络层设计方案 i...
- 转自http://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de...
- 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构...
- 声明:本文很多部分是对王巍App 架构一书的学习笔记,如有侵权,请告知 我们需要决定在 app 中如何执行下列任务...