美文网首页iOS学习笔记
对于MVC、MVVM、MVP设计模式的总结

对于MVC、MVVM、MVP设计模式的总结

作者: romancemystery | 来源:发表于2016-07-13 09:51 被阅读227次

一、MVC设计模式

1、模式分析

Models(模型):数据层,负责处理数据的数据接口层;

Views(视图):展示层,以UI开头的类基本属于Views;

Controller:重控制器,负责Model与View之间连接,当用户对View操作时它负责去修改相应的model;当Model值发生变化时它负责更新对应的View;

2、性能分析

划分层次:View和Model实现了分离,但View和Controller耦合太厉害;

可测性:划分不清楚,导致只有Model可进行测试;

易用性:相较于其他设计模式,代码量少,易上手。

3、模型分析图(摘自网络)

二、MVP设计模式

1、模式分析

Models:数据层

ViewController:视图控制器,实际扮演View的角色

Presenter:只负责更新数据和视图状态

2、性能分析

划分层次:划分了Presenter和Model以及简单的视图

可测性:可通过View来测试大部分的业务逻辑

易用性:思路清晰,但代码量较多

3、模型分析图(摘自网络)


三、MVVM设计模式

1、模式分析

Model:数据访问层

View:UI界面

ViewModel:View的抽象,负责View与Model之间的信息转换

2、性能分析

划分层次:划分了Model、View、以及ModelView,与其他设计模式主要区别在于ModelView的划分。

可测性: 因为ViewModel对View是分离的,测试简单。

易用性: 简洁、易用性较强。

3、模型分析图(摘自网络)


四、三种设计模式总结(附分析表)


1、就开发速度而言,Cocoa MVC是最好的架构选择方案

2、MVP可测试性强、代码量大

3、MVVM集合了上述方法的有点,可测试性很强。

五、ReactiveCocoa

结合了函数式编程、响应式编程使用RAC来解决问题,不需考虑调用顺序,直接考虑结果,代码高聚合,方便管理。

当某些事件响应时,可通过RAC来处理某些业务逻辑,比如按钮的点击使用action,ScrollView滚动使用delegate,属性值改变使用KVO等系统提供的方式。

六、体会

通过在网上查找ReactiveCocoa的相关资料接触到RACSiganl信号类,之前未曾接触使用过,还是存在一些难度,不能透彻了解。对MVC、MVP、MVVM这三种设计模式已有一定了解,希望在以后能够结合实际项目,进行学以致用。

七、重点参考资料

<1>http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

<2>http://blog.csdn.net/li_shuang_ls/article/details/50176891

<3>http://www.cocoachina.com/ios/20160108/14916.html

<4>http://www.jianshu.com/p/87ef6720a096

<5>https://objccn.io/issue-13-1/

相关文章

  • iOS 设计模式 一

    设计模式随记 系统架构模式 1. MVC - MVVM - MVP - MVVM、MVC协调版 MVC :...

  • Angular2双向绑定及变化检测

    前几天总结了MVC、MVP、MVVM设计模式,其中MVVM的核心机制就是双向绑定。React、Vue、Angula...

  • vue笔记

    设计模式(MVC/MVP/MVVM) MVC(Model View Controller): 数据模型(Model...

  • iOS开发小帖:设计模式

    设计模式精彩文章 iOS 架构模式--解密 MVC,MVP,MVVM以及VIPER架构 MVP设计模式 基于面向协...

  • iOS-面试题6-架构

    目录: MVC-Apple MVC-变种 MVP MVVM 分层设计 架构与设计模式的区别 一. MVC-Appl...

  • MVP MVVM MVC 个人总结

    在简书上总结下,场景的三种设计模式MVP MVC MVVM由于我的技术栈是VUE,属于MVVM开发模式,因此对MV...

  • 对于MVC、MVVM、MVP设计模式的总结

    一、MVC设计模式 1、模式分析 Models(模型):数据层,负责处理数据的数据接口层; Views(视图):展...

  • iOS-MVC,MVP,MVVM及VIPER简介

    iOS中MVC,MVP,MVVM及VIPER设计模式介绍的文章有很多,开发过程MVC最常见的模式,MVVM也经常被...

  • Android 中 MVC、MVP 和 MVVM 对比

    一、前言: MVC、MVP和MVVM是常见的三种架构设计模式,当前MVP和MVVM的使用相对比较广泛,当然MVC也...

  • Android中MVP设计框架浅析

    一、MVP设计模式简介 目前Android设计成熟的框架有MVC,MVP和MVVM,MVP是由MCV演变而来,MV...

网友评论

    本文标题:对于MVC、MVVM、MVP设计模式的总结

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