我在youtube上观看了斯坦福大学的一些Swift教学视频。讲师(Paul Hagerty,伟大的老师!)讲述了iOS是如何围绕MVC(模型 - 视图 - 控制器)的思想构建的。我读过一些人在堆栈溢出时说这个想法已经死了,其他人说很多网站开发人员现在都使用这个术语。
我无法区分控制器和型号。我读过MVC描述为用户界面(网页/ UI),控制器(服务器)和模型(数据库)。但是教师将其描述为视图(UI,易于理解),模型(例如进行计算的数据和逻辑)和控制器(将模型和视图与特定的编程逻辑连接起来)。
我不明白的是,如果在独立应用程序(不是网络)的情况下没有数据库,我们也不能同时创建我们的程序如何工作的数据和逻辑?在这种情况下,控制器和型号有什么区别?
答案 0 :(得分:1)
模型是数据。想象一下表视图控制器。视图是表视图。控制器是UITableViewController。模型可以像字符串数组一样简单。
控制器在模型和视图之间进行调解。它选择要显示的数据并将其安装在视图中。
对于只显示一些文本的非常简单的视图控制器,模型可以像字符串一样简单。如果文本是静态的,则视图控制器甚至可能没有真正的单独模型。它只会显示故事板中的文本。
答案 1 :(得分:1)
存在被过度简化的钉在十字架上的风险:你可以将MVC视为一种分离“问题”的方式 - 用英语 - 每个人都有自己的“责任”(关注点分离)。
因此,在您的“简单示例”中,您可以将概念“分离”为客户端和服务器 - 冒着更加羞耻的风险,browser
和某个网站。
controller
:浏览器接受用户输入并发出请求; model
:一个回复一些可能只是HTML文档的数据的网站view
:浏览器将该数据呈现给用户所以:
浏览器“不知道”数据是如何创建/构建的,只是管理请求/响应并显示结果
所有网站都会构建一些数据并将其(返回)提供给请求者。它不关心如何使用/渲染/显示/过滤等。
所有视图都以某种有意义的方式呈现/显示数据给用户。它不关心数据的来源,也不关心它是如何构建的。
H个。