我很困惑 MVC 如何与 GUI swing 应用程序一起工作。我使用过 PHP MVC,但那是完全不同的。我了解 MVC 代表什么。但是让我感到困惑的是在 GUI swing 编程中这样做的不同变体。很难从网络上的不同文章中得出特定的结论。谁应该知道谁?我的意思是模型视图和控制器之间的关系是什么?控制器应该知道模型和视图吗?如果可能的话,我想举一个简单的例子来说明这一点(比如会更新标签的简单按钮)
如果我不要求更多,我想了解一下写 Swing 的 MVC 书。
我很困惑 MVC 如何与 GUI swing 应用程序一起工作。我使用过 PHP MVC,但那是完全不同的。我了解 MVC 代表什么。但是让我感到困惑的是在 GUI swing 编程中这样做的不同变体。很难从网络上的不同文章中得出特定的结论。谁应该知道谁?我的意思是模型视图和控制器之间的关系是什么?控制器应该知道模型和视图吗?如果可能的话,我想举一个简单的例子来说明这一点(比如会更新标签的简单按钮)
如果我不要求更多,我想了解一下写 Swing 的 MVC 书。
如果你问 10 个不同的人“MVC 是什么意思?” 你可能会得到 10 个不同的答案。我个人偏爱 MVC 的这种定义(至少对于非 Web 应用程序而言):
基本上,控制器提供的唯一功能是在应用程序启动时实例化模型和视图并将它们相互连接。其他一切只是将程序的数据和逻辑(模型)与您选择向用户显示它并允许用户交互(视图)的方式正确解耦。
Java 的 MVC 有许多不同的解释。我将尝试提供一个基本的解释,但正如我所说,其他人可能不同意这一点。
理论上对 MVC 的“纯粹”解释涉及以下内容:
这是一个可能的/简单的例子:
这个假设应用程序的目标是在模型中获取一个字符串,将其提供给 GUI(视图),允许用户更改字符串,并更新模型中的上述字符串值。这个例子或多或少尽可能地解耦。
模型:
看法:
控制器(“胶水”):
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