欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

程序员文章站 2023-04-06 20:38:18
  mvc(model-view-controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在smalltalk语言中。现在,很多计算机语言和架构都采用了mvc模式。   m...

  mvc(model-view-controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在smalltalk语言中。现在,很多计算机语言和架构都采用了mvc模式。

  mvc模式概述

  mvc模式是一种复合设计模式,由“观察者”(observer)模式、“策略”(strategy)模式和“合成”(composite)模式等组成。mvc模式由3个部分组成,如图所示,这3个部分的作用如下所示。

  模型。保存应用数据的状态,回应视图对状态的查询,处理应用业务逻辑,完成应用的功能,将状态的变化通知视图。

  视图。为用户展示信息并提供接口。用户通过视图向控制器发出动作请求,然后再向模型发出查询状态的申请,而模型状态的变化会通知给视图。

  控制器。接收用户请求,根据请求更新模型。另外,控制器还会更新所选择的视图作为对用户请求的回应。控制器是视图和模型的媒介,可以降低视图与模型的耦合度,使视图和模型的权责更加清晰,从而提高开发效率。

  

《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

 

  对应于哲学中的“内容”与“形式”,在mvc模型中,模式是“内容”,它存储了视图所需要的数据,视图是“形式”,是外部表现方式,而控制器是它们的媒介。

  cocoatouch中的mvc模式

  上面我们讨论的是通用的mvc模式,而cocoa和cocoa touch框架中的mvc模式与传统的mvc模式略有不同,前者的模型与视图不能进行任何通信,所有的通信都是通过控制器完成的,如图所示。

  

《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

 

  在cocoa touch框架的uikit框架中,uiviewcontroller是所有控制器的根类,如uitableviewcontroller、uitabbarcontroller和uinavigationcontroller。uiview是视图和控件的根类。