您的位置:首页 > 运维架构 > 网站架构

Vickate_iOS_架构模型(MVC、MVVM)

2017-03-14 17:43 211 查看
组织代码所耗费的每一分钟,都相当于赚了一个小时。

— 本杰明·富兰克林


移动端开发常用的架构(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc mvp mvvm 架构 ios