ios - MVC, Controller 和模型之间的区别?

标签 ios model-view-controller

我在 youtube 上观看了斯坦福大学的一些 Swift 教学视频。讲师(Paul Hagerty,伟大的老师!)讲述了 iOS 是如何围绕 MVC(模型- View - Controller )的思想构建的。我在 stack overflow 上看到有人说这个想法已经死了,还有人说现在很多网络开发人员都在使用这个术语。

我无法区分 Controller 和模型。我读过 MVC 被描述为用户界面(网页/UI)、 Controller (服务器)和模型(数据库)。但是讲师将其描述为 View (UI,易于理解),模型(例如进行计算的数据和逻辑)和 Controller (将模型和 View 与您的特定编程逻辑连接起来)。

我不明白的是,如果在独立应用程序(不是网络)的情况下没有数据库,我们不是也在同时创建程序如何工作的数据和逻辑吗?在这种情况下, Controller 和模型有什么区别?

最佳答案

冒着因过度简化而被钉在十字架上的风险:您可以将 MVC 视为一种分离“关注点”的方法 - 在英语中 - 每个都有自己的“责任”(关注点分离)。

因此,在您的“简单示例”中,您可以将概念“分离”为客户端和服务器 - 冒着更大的耻辱风险,浏览器 和一些网站。

  1. controller:浏览器接收用户输入并向其发出请求;
  2. model:一个响应一些数据的网站,这些数据可能只是一个 HTML 文档
  3. view:浏览器将数据呈现给用户

所以:

  • 浏览器并不“知道”数据是如何创建/构建的,它只是管理请求/响应并显示结果

  • 网站所做的只是构建一些数据并将其(返回)给请求者。它不关心它是如何被使用/渲染/显示/过滤等的。

  • View 所做的只是以某种对用户有意义的方式呈现/显示数据。它不关心数据来自哪里,也不关心数据是如何构建的。

嗯。

关于ios - MVC, Controller 和模型之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841171/

相关文章:

ios - PFQuery 查询 n 个 PFUser 和 PFObjects

javascript - 创建主干模型和集合时出现问题

ios - KVO 使用现有模型数据加载新 View

ios - 在 Swift 中查看模型绑定(bind)

ruby-on-rails - 在 View 模板中保留逻辑是否可以接受?

ios - 为 ios 8.1 设计的应用程序会自动在 ios 8.2 上运行吗?

ios - 框架项目上的 InfoPlist.strings

objective-c - 如何在 iOS 6 中将步行轨迹或路线显示为 map 叠加层

ios,以编程方式打开 VoiceOver

model-view-controller - 日志记录适合 Model View Controller 架构的什么位置?