Vickate_iOS_架构模型(MVC、MVVM)

组织代码所耗费的每一分钟,都相当于赚了一个小时。

                                                 — 本杰明·富兰克林

移动端开发常用的架构(MVC、MVP、MVVM、VIPER)

MVC

MVC — 模型(Model)、视图(View)、控制器(Controller)的缩写。控制器的作用是连接模型和视图,因为他们互不干涉。视图和控制器的联系非常紧密,因此,控制器最终几乎做了所有的工作。这意味着什么?简单来说,如果你创建了一个复杂的视图,你的控制器(ViewController)会疯狂的变大。有办法绕过这个,但是他们不符合 MVC 规则。另一个 MVC 不好的地方是测试。如果你做测试(这对你有好处!),你会发现只能测试模型,因为跟其他层相比,它是唯一能单独分离出来的层。MVC 的加分项是直观,而且大多数 iOS 开发者都用习惯了。

这里写图片描述

MVVM

  MVVM — 模型(Model)、视图(View)、视图模型(ViewModel)的缩写。在视图和视图模型之间设置一种绑定(基本地响应式编程)的关系,这使得视图模型来调用模型层改变自身时,由于和视图之间的绑定关系而自动更新视图。视图模型并不知道视图的所有事情,这样利于测试,而且绑定节省了大量代码。
  这里写图片描述

MVP

M : 逻辑Model层
V : 视图层
P : protocol协议层

Model层类似于MVVM的ViewModel,主要负责存储抽象逻辑数据,另外Model层主还有部分工作实现对应的协议层协议,提供协议对应的各种属性以及服务。Model经过协议层抽象约束,最后Model被抽象成具有统一抽象逻辑的业务场景,最终Model层在讲数据交付整个MVC结构绘制展示的时间,我们可以按照同一套抽象的逻辑标准去执行。
这里写图片描述

VIPER

视图:根据展示器的要求显示界面,并将用户输入反馈给展示器。
交互器:包含由用例指定的业务逻辑。
展示器:包含为显示(从交互器接受的内容)做的准备工作的相关视图逻辑,并对用户输入进行反馈(从交互器获取新数据)。
实体:包含交互器要使用的基本模型对象。
路由:包含用来描述屏幕显示和显示顺序的导航逻辑。
这里写图片描述
参考链接:http://www.cocoachina.com/ios/20140703/9016.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值