我在其中的一个答案中读到了 Java Swing 并非完全采用 MVC 模式。我也是使用 MVC 模式的新手,我在 Java Swing 中编码。我试图找到一种解决方案或方法,以尽量减少" this
"初始化期间的关键字或将值分配给字段。
例如,说我有ff。 JPanel
有许多JComponents
//View
public class MyPanel extends JPanel{
private final JTextField1 jtf1;
private final JTextField2 jtf2;
....
..
private final JTextField30 jtf30;
private void initControllers(){
jtf1.addActionListener(new MyActionListener(jtf1,jtf2......jtf30));
}
}
//Controller
public class MyActionListener implmements ActionListener{
private final JTextField1 jtf1;
private final JTextField2 jtf2;
....
..
private final JTextField30 jtf30;
public MyActionListener(JTextField1 jtf1,JTextField2 jtf2,..JTextField30 jtf30){
this.jtf1 = jtf1;
this.jtf2 = jtf2;
........
this.jtf30 = jtf30; //Does this mean I have to have 30 of "this" assignment?
}
}
或者我想如果我通过整个JPanel
视图 MyPanel 并生成getters()
,可能是正确还是更好?
像这样:
public class MyActionListener implmements ActionListener{
private final JTextField1 jtf1;
private final JTextField2 jtf2;
....
..
private final JTextField30 jtf30;
public MyActionListener(JPanel myPanel){
this.jtf1 = myPanel.getJtf1;
this.jtf2 = myPanel.getJtf2;
........
this.jtf30 = myPanel.getJtf3;
}
}
解决需要参考的数十个视图组件的常见做法是什么? 你能就如何解决这个问题提出建议吗?我认为对构造函数有太多参数是不合适的。我想清理代码。
从我如何理解我读到的关于MVC的内容是,控制器类可以接受模型和查看作为constructor
中的参数,如同< / p>
public class MyController implements xListener{
private final Model model;
private final View view;
public MyController(Model m, View v){
this.model = m; //to access getters or setters
this.view = v; // to access getters or setters
}
}
将MyController
依赖于Model m
和View v
,如果这是正确的。
我很感激任何建议
感谢。