Java 在传统(非中介)MVC体系结构中,数据转换逻辑发生在哪里?

Java 在传统(非中介)MVC体系结构中,数据转换逻辑发生在哪里?,java,swing,model-view-controller,Java,Swing,Model View Controller,我目前正在学习MVC风格的体系结构,使用Java(特别是Swing) 我知道视图是最终用户使用的图形界面 我知道这个模型代表了工作记忆中的信息、数据库以及两者之间的联系 我知道控制器应该处理正在使用的视图,以及当用户生成事件时会发生什么 然而,我对从视图中获取的原始数据在哪里转换为程序工作内存的可用数据结构感到困惑?由控制员负责?还是按模型 假设我们有一个Swing程序,它在表中显示Person类型的ArrayList中的不同字段。个人数据类型将包含与个人信息相关的不同字段,如姓名、年龄、地址等

我目前正在学习MVC风格的体系结构,使用Java(特别是Swing)

我知道视图是最终用户使用的图形界面

我知道这个模型代表了工作记忆中的信息、数据库以及两者之间的联系

我知道控制器应该处理正在使用的视图,以及当用户生成事件时会发生什么

然而,我对从视图中获取的原始数据在哪里转换为程序工作内存的可用数据结构感到困惑?由控制员负责?还是按模型

假设我们有一个Swing程序,它在表中显示Person类型的ArrayList中的不同字段。个人数据类型将包含与个人信息相关的不同字段,如姓名、年龄、地址等

也就是说,我们的程序中有一个表单,用于提交信息。当我们在表单中输入信息时,我们可以单击“提交”按钮,然后获取原始字段数据并将其放入我们的数据结构中,即我们模型中Person类型的ArrayList

但这里的问题是,原始字段数据(几个不同的字符串)需要转换为Person类型的对象(包含几个不同的字符串字段),以便将其添加到Person类型的ArrayList中

我在这里的困惑是,数据转换逻辑应该发生在哪里

控制器是否应该知道Person数据类型,是否应该将数据转换为Person类型(由处理“提交”事件的侦听器),然后将该对象传递给模型

或者,控制器的工作仅仅是将这些原始数据传递到模型包中,而模型应该具有将原始字段数据转换为Person对象的内部机制


在这种情况下,每个组件(控制器和模型)的职责从何处开始和停止?

其中一个模型类将包含创建人员的代码。其中一个控制器类将执行此代码,以便它可以在创建人员时告诉视图任何错误。一般来说,当代码在MVC模式中的位置出现混淆时,这是因为两个部分分担了使事情发生的责任。此外,您可以有两个模型,一个用于GUI,另一个用于数据库。业务逻辑由两个相互通信的模型组成。@GilbertLeBlanc是正确的;例如,
JTable
是持有
列表的
TableModel
的视图,但该表在调用
TableCellEditor
或打开
JDialog
编辑单个
人员时,也可能充当控制器。