我想我理解MVC的基本概念 – 模型包含应用程序的数据和行为,View负责向用户显示它,并且Controller处理用户输入。我不确定的是在控制器是什么。
让我们说,例如我有一个相当简单的应用程序(我特别想到Java,但我认为同样的原则适用于其他地方)。我把我的代码组织成3个包称为app.model,app.view和app.controller。
在app.model包中,我有几个类反映应用程序的实际行为。这些扩展了Observable,并在适当时使用setChanged()和notifyObservers()触发视图进行更新。
app.view包有一个类(或不同类型的显示的几个类),它使用javax.swing组件来处理显示。这些组件中的一些需要反馈到模型中。如果我理解正确,视图不应该与反馈有任何关系 – 应由控制器处理。
那么我实际上把什么放在控制器?我把public void actionPerformed(ActionEvent e)放在View中,只是调用Controller中的一个方法?如果是,是否应该在控制器中进行任何验证?如果是这样,我如何反馈错误消息回到视图 – 应该再次通过模型,或者应该控制器只是发送它直接回到视图?
如果验证是在视图中完成的,我应该在控制器中放什么?
对不起,长的问题,我只是想记录我的过程的理解,希望有人可以澄清这个问题为我!