- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
早些时候,许多开发人员认为 View 不应像大多数框架那样直接与模型通信。
然后,这个观点好像是错误的,我找了一些文章,这些文章说 View 可以直接和模型通信。
http://r.je/views-are-not-templates.html
http://www.tonymarston.net/php-mysql/model-view-controller.html
Model, View, Controller confusion
和
How should a model be structured in MVC?
大多数这些文章都引用了维基百科的一个 block ,Model–view–controller,引用是:
A view queries the model in order to generate an appropriate user interface (for example the view lists the shopping cart's contents). The view gets its own data from the model. In some implementations, the controller may issue a general instruction to the view to render itself. In others, the view is automatically notified by the model of changes in state (Observer) that require a screen update.
啊,来自维基百科,这么权威的网站,一定没错!
但是现在,当我打开 MVC 的 wiki 链接时 http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller , 页面编辑于今年(2013年)9月14日,上面那句话已经没有了。
View 的新定义是:
A view requests from the model through the controller the information that it needs to generate an output representation to the user.
现在我又糊涂了,新的定义说 View 应该通过 Controller 从模型请求数据...
View 访问模型应该直接在地球上吗?
最佳答案
以下是经典 MVC 架构中依赖关系的表示。您会注意到没有从 Controller 指向 View 的箭头,因为它是新添加的:
然后是更接近您通常在“MVC 框架”中看到的依赖关系图:
来源:Passive view
“被动 View ”配置不是 MVC 架构的一部分。虽然它使用相同的名称,但它实际上是 MVP 的变体。模式 (您可以在 this publication 中找到更长更详细的描述)
底线:是的,如果您正在实现 MVC 或类似 MVC 的架构,那么您的 View 应该从模型层请求信息。
此外,您应该注意,这不是所谓的“mvc 框架”所插入的。在类似 Rails 的框架中没有 View 。相反(因为原始结构是为原型(prototype)设计而制作的) View 被哑模板取代, View 的所有职责都被推到他们称之为“ Controller ”的东西中。
基本上,恕我直言,命名类 Rails 模式的最佳方式是 OLT:ORM-Logic-Template。
关于php - MVC : should view talk with model directly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872991/
Google Talk如何工作?当我连接到我的 friend 进行谈话时,什么充当 中级 一个转移我的声音?那是它背后的谷歌服务器(充当中间人?还是提供点对点协议(protocol)? 最佳答案 他们
我有两个(Java)进程在不同的 JVM 上重复运行。第一个经常发现一些“信息”并需要将其存储在某个地方。第二个进程定期读取此信息来处理它。这些间隔或多或少是随机的,因此进程 1 可能会找到三条信息,
我想创建一些服务,该服务将作为简单进程运行,并为其他应用程序提供向他发送 xml 流的可能性。 我的意思是创建具有无限循环的简单进程 (exe) - 任何应用程序都能够将 XML(文件/流)发送到该进
我想知道(官方)GTalk 客户端如何设法显示接收到的所有 消息——即使它最初是由另一个客户端使用的。例如:我在笔记本电脑上登录 gmail.com 上的 GTalk,同时在我的 Android 设备
Google GTalk 客户端(web、android、windows)具有从服务器获取对话历史的强大能力,即使对话是在另一个 jabber 客户端完成的。 什么 jabber (XMPP) 功能
我知道一旦调用函数,this 的上下文就会更改为对象,但如何在无需创建方法的情况下模拟该上下文? var object = { x: 1, y: object.x, //
Google Talk 如何播放当前歌曲?我可以使用 .net 执行此操作吗? 编辑:看起来每个玩家都有自己的 SDK 供使用 温安普 :这是一个关于要使用的类的好帖子:http://forums.w
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
当我们为android或ios应用程序安装代理时,我们通常会添加一些库并更改一些配置设置。仅添加一个库如何使该应用程序记录事件并将其推送到 monkey talk IDE。 通常我们在项目中添加库的时
我是一名大学生。我正在上我的第二个 comp sci 类(class),我们还没有太多简单地在其中制作类和函数,所以我还没有真正能够充分利用我在互联网上找到的复杂行话。 我正在制作蟑螂出没模拟游戏,我
我正在开发一个 Android 应用程序,其中显示了 Google Talk 联系人及其状态 - 这工作正常。 我不确定应该调用哪个 Intent 来使用默认的 Talk 应用打开聊天窗口。 我如何知
我一直在努力弄清楚 TED Talk homepage 到底是怎么回事作品。撇开所有的动画垃圾不谈,我发现盒子的组织方式真的很迷人。 乍一看,它看起来像 jQuery masonry plugin ,
我想知道如何通过特殊客户端为 Google Talk 创建聊天机器人。 我知道它使用 XMPP 发送消息,但我完全不知道如何使用它。据我了解,如果我要创建自己的客户端页面,我应该能够制作一个机器人,当
几天来,我一直在尝试通过 SmartBand Talk (SWR30) 发送 Google 文字转语音音频。我对 AndroidManifest.xml 拥有正确的权限 PERMISSION_CONT
我设置了一个在预览控制台中运行的 GoogleHome 操作 我会写“用行动说话” 我得到我的答案 如何用法语测试 GoogleHome 上的该操作?任何解决方法? 我尝试在移动应用程序中使用别名来触
我正在尝试使用PHP连接到Google Talk XMPP服务器。我成功建立了连接并使用X-OAUTH2登录。然后Google要求我建立TLS连接。但是,当尝试将连接升级到TLS时,出现异常:stre
我是扩展程序编程的新手,但发现在 Chrome 中制作扩展要容易得多,但现在我正在尝试将我的测试扩展移植到 FF,我有几个问题如何做与我在 Chrome 中所做的相同的事情。 .现在在FF。 例如:在
FB 公开了此 EdgeRank 指标(显示在每个页面上) - 现在如何访问它来收集统计数据? 最佳答案 几周前我向 Facebook 团队询问了此事;看来当时它被忽视了,他们会调查它。我今天刚刚检查
我正在尝试使用 Monkey Talk 进行自动化测试。我安装成功了。我在 Eclipse Juno 上运行示例应用程序,然后创建一个新的 Monkey 脚本并记录操作。 问题是 Monkey IDE
有谁知道 Google Talk 浏览器插件是否可供网络应用程序开发人员使用?我说的是用 HTML/JavaScript 来操作它。 Google Talk 开发网站似乎只为想要开发独立客户端/服务器
我是一名优秀的程序员,十分优秀!