Model-View-Controller
即 模型 - 视图 - 控制器
Model(模型)
:存储、处理数据,为应用程序提供数据。
View(视图)
:展示用户界面视图,提供用户交互,展示模型提供的数据。
Controller(控制器)
:控制视图显示,处理用户交互,从模型获取数据展示在视图上,解除模型和视图之间的耦合。
C和V通信
C直接控制V C负责处理V产生的事件
C和M通信
C向M提出需求,直接使用M提供的数据。 M向C发起通信方式:KVO、通知、可以在M放生变化时通知C C负责读取M提供的数据,负责监控M的变化并进行处理。
V和M通信
V和M禁止通信 C负责M和V之间的通信。C从M获取数据,将数据显示在View上。
MVC优势
实现低耦合,减少视图和控制器之间复杂冗余的代码。 提高重用性,多个视图可以共享一个模型,多个控制器可以共享一个视图。 更易于维护,M、V、C独立,可以分别处理不同的变化。