美文网首页
面试问题之四:MVC模式

面试问题之四:MVC模式

作者: 西门魏国 | 来源:发表于2015-03-17 15:07 被阅读534次

Model:模型保存应用程序的数据。

View:视图是模型的可视化表示以及用户交互的控件;

Controller:控制器是一个协调所有工作的中介者(Mediator)。它访问模型中的数据并在视图中展示它们,同时它们还监听事件和根据需要操作数据。

MVC 约定, Model 不允许与View 打交道。 Model 是管理数据的, 当Model中的数据发生变化时,与之对应的视图应更新。 这就需要一种机制来支持。为此 iOS 框架提供了两种支持机制: Notification 和KVO (Key-Value Observing)。 KVO 可简单理解为,为你所关注的 Key 对象注册一个监听器。 当有数据发生变化时,就会发出广播给所有的监听器。

MVC 也约定, View 不允许直接引用Modal, 它只能被Controller 所控制。 Controller 控制 View 显示什么数据。我们知道,View 所要显示的数据是来源于 Modal, View 上产生的事件 ( 比如 Touch事件)需要通知 Controller。 既然MVC 不允许直接打交道,就需要提供一种机制: Delegate

我们看View 是怎么向 Controller 通信的。对于这个,  iOS 有三种常见的模式:

1,设置View对应的Action Target。如设置UIButton的Touch up inside的Action Target。

2,设置View的Delegate,如UIAlertViewDelegate, UIActionSheetDelegate,UITextFieldDelegate等。

3,设置View的data source, 如UITableViewDataSource。

通过以上三种模式,View既能向Controller通信,又无需知道具体的Controller是谁,这样,View 就与Controller解耦了。

除此之外, iOS 还提供了 Action-Target 模式来让Controller 监听View 触发的事件。 View 又是如何获取数据呢? iOS提供了 Data source 的概念,其实也就是Protocol 的应用。

相关文章

  • 面试问题之四:MVC模式

    Model:模型保存应用程序的数据。 View:视图是模型的可视化表示以及用户交互的控件; Controller:...

  • 2020-03-06

    常见前端面试题---其他篇 1、如何理解MVVM模式和MVC模式 MVC是经典的开发模式,model数据库,提供数...

  • iOS MVC与MVVM的简述与应用

    MVC模式 mvc是前两年使用较为宽泛的设计模式,甚至宽泛到又一次我面试说熟悉它,面试官竟说它也算设计模式,在此我...

  • 设计模式演变过程

    基本设计模式之MVC模式 基本设计模式之MVP模式 基本设计模式之MVVM模式 SPA和MPA SPA:单页面应用...

  • 常用设计模式整理

    ios面试题(整理) ios常用的设计模式有哪些? MVC模式、委托模式、观察者模式(kvo、kvc、通知机制)、...

  • iOS 设计模式

    MVC和MVVM?它是iOS开发中阻力最低的架构模式。MVC代码量最小,设计开销最小的模式。MVC常见的问题: 在...

  • IOS MVC

    MVC ///重点(面试的重中之重) /*MVC 是手机软件开发常用的进行软件架构实现的设计模式 *M (mode...

  • 底层28:架构

    面试题:讲讲MVC、MVVM、MVP,以及你在项目中具体是怎么写的? 面试题:你自己用过哪些设计模式? 单例模式、...

  • Spring学习之Spring MVC 初探

    Spring学习之Spring MVC 初探 前言 MVC模式,是现代开发中一种比较常见的模式,主要的作用在于将视...

  • Android 之设计模式Mvc、Mvp和Mvvm

    这篇文章记录一下Android中框架的Mvc、Mvp、Mvvm模式。在面试中有很多面试官都会问到讲讲三种模式的运用...

网友评论

      本文标题:面试问题之四:MVC模式

      本文链接:https://www.haomeiwen.com/subject/ctwixttx.html