Java MVC-这是正确的吗?
我第一次尝试使用MVC模式。 我不确定我是否用正确的方法: 主要类别:Java MVC-这是正确的吗?,java,model-view-controller,Java,Model View Controller,我第一次尝试使用MVC模式。 我不确定我是否用正确的方法: 主要类别: public class DBEditorMain { public static void main(String[] args) { DBEditorController control = new DBEditorController(new DBEditorView()); } } DBEditorController构造函数: public DBEditorController(DBEdit
public class DBEditorMain
{
public static void main(String[] args)
{
DBEditorController control = new DBEditorController(new DBEditorView());
}
}
DBEditorController构造函数:
public DBEditorController(DBEditorView view)
{
this.view = view;
addListeners ();
view.setVisible (true);
}
public DBEditorView()
{
super ("Database");
setSize (800, 600);
setResizable (false);
initGUI ();
}
DBEditorController添加侦听器:
private void addListeners()
{
view.addWindowListener (new WindowAdapter ()
{
@Override
public void windowClosing(WindowEvent e)
{
terminate ();
}
});
view.addActionListeners (this);
}
public void addActionListeners(ActionListener l)
{
closeButton.setActionCommand ("close");
saveButton.setActionCommand ("save");
closeButton.addActionListener (l);
saveButton.addActionListener (l);
}
DBEditorView构造函数:
public DBEditorController(DBEditorView view)
{
this.view = view;
addListeners ();
view.setVisible (true);
}
public DBEditorView()
{
super ("Database");
setSize (800, 600);
setResizable (false);
initGUI ();
}
DBEditorView addActionListeners:
private void addListeners()
{
view.addWindowListener (new WindowAdapter ()
{
@Override
public void windowClosing(WindowEvent e)
{
terminate ();
}
});
view.addActionListeners (this);
}
public void addActionListeners(ActionListener l)
{
closeButton.setActionCommand ("close");
saveButton.setActionCommand ("save");
closeButton.addActionListener (l);
saveButton.addActionListener (l);
}
DBEditorController操作已执行:
@Override
public void actionPerformed(ActionEvent e)
{
switch (e.getActionCommand ())
{
case ("save"):
save();
break;
case ("close"):
terminate();
break;
}
}
我认为我做得很对,因为视图和模型还没有实现,没有对控制器或彼此的引用。
这是一个好的开始还是我错过了什么
我知道这是一个愚蠢的问题。.这不是一个坏方法,但如果您更改web环境的视图,例如,此控制器不能使用,因为它依赖于Swing framework。因为我不想要web应用程序,我想这没关系。嗯,这种模式的目标是尽可能多地实现独立的层和交换层的能力。但是如果你确定你不会改变视图,是的,没关系。