我目前正在学习使用Java(特别是Swing)的MVC架构风格。
我知道视图是最终用户使用的图形界面。
据我所知,该模型代表了工作内存,数据库和两者之间的联系信息。
我知道控制器应该处理正在使用的视图,以及当用户生成事件时会发生什么。
但是,我很困惑从视图中获取的原始数据转换为程序工作内存的可用数据结构?由控制器?还是模特?
假设我们有一个Swing程序,它在表格中显示Person类型的ArrayList中的不同字段。人员数据类型将包含与个人信息相关的不同字段,例如姓名,年龄,地址等。
我们还说我们的程序中有一个用于提交信息的表单。当我们在表单中输入信息时,我们可以点击"提交"按钮,然后获取原始字段数据并将其放入我们的数据结构中,我们的模型中的Person类型为ArrayList。
这里的事情是,原始字段数据(几个不同的字符串)需要转换为Person类型的对象(它包含几个不同的String字段),以便将它添加到Person类型的ArrayList中。 / p>
我的困惑在于数据转换逻辑应该在何处发生?
Controller是否应该知道Person数据类型,是否应该将数据转换为Person类型(由处理"提交"事件的侦听器),然后将该对象传递给模型?
或者控制器的工作仅仅是将这些原始数据传递给Model包,而Model应该有一个内部机制将原始字段数据转换为Person对象?
在这种情况下,每个组件(控制器和模型)的职责究竟在哪里开始和停止?