Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 模型或控制器中的MVC变量?_Variables_Design Patterns_Model View Controller_Model_Controller - Fatal编程技术网

Variables 模型或控制器中的MVC变量?

Variables 模型或控制器中的MVC变量?,variables,design-patterns,model-view-controller,model,controller,Variables,Design Patterns,Model View Controller,Model,Controller,我试图理解MVC模式,我终于理解了很多。有一个概念我还不太明白。我已经浏览了这里所有试图解释MVC的帖子,但是这个问题还没有得到明确的回答 您是在模型或控制器中创建变量,还是同时在两者中创建变量 我可以看到有人将变量从控制器传递到模型,以更改变量中保存的数据,但是在模型中创建它们然后从控制器调用它们的值会更好吗?还是最好在模型中创建变量,并将它们的值复制到控制器中的相同变量 如果你知道,请解释为什么一个比另一个好。我要求的是理解,而不仅仅是知道正确的答案。谢谢。如果我给你一个直截了当的答案 您是

我试图理解MVC模式,我终于理解了很多。有一个概念我还不太明白。我已经浏览了这里所有试图解释MVC的帖子,但是这个问题还没有得到明确的回答

您是在模型或控制器中创建变量,还是同时在两者中创建变量

我可以看到有人将变量从控制器传递到模型,以更改变量中保存的数据,但是在模型中创建它们然后从控制器调用它们的值会更好吗?还是最好在模型中创建变量,并将它们的值复制到控制器中的相同变量


如果你知道,请解释为什么一个比另一个好。我要求的是理解,而不仅仅是知道正确的答案。谢谢。

如果我给你一个直截了当的答案

您是在模型或控制器中创建变量,还是同时在两者中创建变量

这并不重要

模型控制器背后的主要思想是

  • 控制器仅驻留表示逻辑
  • 模型仅驻留业务逻辑
  • 因此,如果您想用不同的表示逻辑来表示您的模型,您可以将现有的模型取出,并将其插入新的控制器,而不会出现任何问题,因为您的业务逻辑和表示逻辑是解耦的(不是相互混合的)
这是我找到的MVC体系结构的最佳图表。希望你能用这个提升你的理解力


因此,在变量方面,在模型中您应该只为业务逻辑目的创建变量。在控制器中,仅用于演示目的。:)

应用程序整个生命周期所需的持久数据应保存在模型中。用于设置、获取和操作模型内数据的模型方法调用应由控制器完成


应用程序或视图所需的临时数据(出于任何原因)可以保存在控制器中。。。但是控制器中不应该保存持久性数据,因为这样做被认为是一个糟糕的MVC设计模式实现。

这是一个很好的图表,但是您可以看到我的困惑所在。即使有了这个漂亮的图表,变量也没有被提及。@user2470057在控制器中使用变量完全没有问题,只要它们不与应用程序的业务逻辑混合。实际上,模型是控制器的服务提供者。:)@user2470057如果我改进您的陈述,我会说“控制器负责表示逻辑,保存变量,调用模型来更新控制器中存在的变量,并调用视图来根据控制器中存在的更新变量进行更新。”:)谢谢,这看起来是我现在可以理解的。我会等几天,以确保每个人都同意这一点。我还找到了你从中获得图像的链接,并希望确保原始作者得到了信任:根据链接的作者,他说数据保存在模型中,所以从我所看到的,变量实际上并不保存在控制器中。