MVC中的按钮应该放在控制器(Controller)还是视图(View)中?

4

您好,我在学校的数据库中读到了一个有关Java中MVC的示例。在这个示例中,按钮被放置在Controller部分。但是,难道不应该把按钮放在VIEW中吗?因为用户可以看到的所有东西都应该在视图中,或者我理解有误,在Java中可能不同呢?


展示一些上下文 - 你是指生成GUI中的按钮的代码,还是指将操作绑定到按钮上? - Makoto
我是说生成按钮等代码的内容。 - Reshad
3个回答

4

这张图片是从维基百科的模型-视图-控制器页面推广出来的MVC概念:

enter image description here

一般来说,如果你正在处理绘制/渲染UI元素,则应该放在视图中。让用户与按钮交互的操作/事件应该放在控制器中(必要时可以将功能委托给服务)。不要在控制器中放置任何绘制/渲染按钮的代码-这会使控制器与特定视图紧密耦合,违反了使用此设计模式的原则。

2
您说的“按钮属于视图”的说法是正确的。然而,在某些特定情况下,您可能需要在控制器中定义按钮。例如,在动态 UI 的情况下,根据条件,按钮可能需要在控制器中实例化。
视图/控制器分离的主要原因之一是使视图“愚笨”,成为不需要测试的 UI 表示。UI 组件通常很重,必须被抽象出来进行测试。这是通过使用轻量级模拟替换它来完成的,这些模拟镜像了原始组件的接口,并将其呈现给控制器的测试。
如果涉及条件或业务逻辑,则应为不同的场景测试代码,因此该代码应位于控制器中。

0

我的建议是,看一下PureMVC Project为Java实现的MVC。你会发现这是一件了不起的事情!基础架构是按照这里描述的MVC架构实现的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接