C599d27a0b529ac7a7e7b25ae36aae3c
MVC、MVVM面试要点

MVC

MVC

定义

MVC模式(Model–View–Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
在iOS中,MVC通信模式如下所示:

  • VC持有Model和View,Model和View不直接交互。
  • 当用户点击View时,通知VC,需要更新Model时由VC来更新Model。
  • 当Model发生变化时候,利用KVO等技术通知VC,由VC来更新View。

Massive ViewController

如果我们把所有的业务逻辑都写在VC里面,不做好拆分,很容易造成VC臃肿。这个时候需要为VC瘦身,而MVVM就是为了解决VC过于庞大引入的设计模式。

怎么为VC瘦身

1、一个干净的VC应该只做如下事:

  • 在初始化时,构造相应的 View 和 Model。
  • 监听 Model 层的事件,将 Model 层的数据传递到 View 层。
  • 监听 View 层的事件,并且将 View 层的事件转发到 Model 层。
  • 其他的事情可以由若干个Manager来完成。

2、那么在iOS中,我们有那些常用的瘦身手段呢?

  • 网络层。定义网络请求类 ,一个网络请求代表一个类。网络请求类负责发网络请求以及把响应数据解析为model,model以及response通过block方式回调给调用方。这里的调用方大部分时候是VC。
top Created with Sketch.