相信大多数小伙伴对MVC这个模式很熟悉,近段时间在看设计模式,我们平时使用的MVC模式和苹果所倡导的MVC还是有出入的。
顾名思义:
M(数据层):提供数据模型、如通过(调接口、数据库)把数据存储到模型对象中
V(视图层):提供视图展示、也可与用户交互
C(控制层):协调M(数据层)和V(视图层) 把数据处理后存入模型,并把数据更新到对应的视图
传统的MVC模式
传统的MVC:模型层(M)和视图层(V) 之间是存在依赖关系,在数据发生变化的时候:
1、当视图(V)要发生改变的时候请求模型(M)更新状态
2、当模型(M)发生变化的时候需要通知视图(V)更新外观
苹果版MVC苹果版MVC模式
打个比喻:
比如我们玩乐高,我们拿(控制C)一堆积木 (数据)照着图纸 (模型M) 搭建玩具(视图V)
积木:数据
我们: 控制层(C)
图纸: 模型层(M)
玩具:视图层(V)
苹果版的MVC:模型层 (M) 和视图层 (V) 是完全隔离的,双方不知道对方的存在,而是通过控制层(C)去更新视图层(V)的展示和模型层(M)数据的更新。
把控制权完全交给控制器(C), 模型(M)和视图(C)不会形成依赖关系,这样做的好处是能更好的实现复用。
参考链接:苹果设计模式
网友评论