-1

我很困惑 MVC 如何与 GUI swing 应用程序一起工作。我使用过 PHP MVC,但那是完全不同的。我了解 MVC 代表什么。但是让我感到困惑的是在 GUI swing 编程中这样做的不同变体。很难从网络上的不同文章中得出特定的结论。谁应该知道谁?我的意思是模型视图和控制器之间的关系是什么?控制器应该知道模型和视图吗?如果可能的话,我想举一个简单的例子来说明这一点(比如会更新标签的简单按钮)

如果我不要求更多,我想了解一下写 Swing 的 MVC 书。

4

2 回答 2

2

如果你问 10 个不同的人“MVC 是什么意思?” 你可能会得到 10 个不同的答案。我个人偏爱 MVC 的这种定义(至少对于非 Web 应用程序而言):

模型-视图-控制器设计模式

基本上,控制器提供的唯一功能是在应用程序启动时实例化模型和视图并将它们相互连接。其他一切只是将程序的数据和逻辑(模型)与您选择向用户显示它并允许用户交互(视图)的方式正确解耦。

于 2013-07-08T21:30:00.010 回答
0

Java 的 MVC 有许多不同的解释。我将尝试提供一个基本的解释,但正如我所说,其他人可能不同意这一点。

理论上对 MVC 的“纯粹”解释涉及以下内容:

  • 模型不知道视图
  • 视图不知道模型
  • 控制器以这样一种方式连接模型和视图:它将模型中的数据提供给视图,处理视图或模型中的“事件”,并根据视图中发生的情况相应地更新模型。它也可以只处理视图中的事件并将结果返回给视图,例如计算器。

这是一个可能的/简单的例子:

这个假设应用程序的目标是在模型中获取一个字符串,将其提供给 GUI(视图),允许用户更改字符串,并更新模型中的上述字符串值。这个例子或多或少尽可能地解耦。

模型:

  • 包含一个字符串变量

看法:

  • 显示字符串变量。
  • 接受允许更改字符串的用户输入。

控制器(“胶水”):

  • 通过 String 的自定义侦听器侦听 Model。
  • 将此字符串提供给视图以供用户查看
  • 通过自定义侦听器侦听视图,以便用户更改字符串。
  • 获取这个新字符串并将其提供给模型,更新原始字符串。

MVC 背后的关键之一是观察者模式理论。

尽管使用维基百科要承担一定的风险,但它通常可以很好地传达 MVC 背后的基础知识。http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

这是讨论“纯”实现和解释来源的链接。 http://www.youtube.com/watch?v=ACOHAR7PIp4

这是一个链接,很好地解释了类似的 MVC 解释及其背后的理论: http ://www.youtube.com/watch?v=CVxt79kK3Mk

于 2013-07-08T23:43:20.547 回答