java 中的 MVC 概念
MVC Conception in java
我需要制作一个使用 MVC 模型的 java 应用程序(我不会使用控制器以避免事情变得复杂)。
正如您在下面的 class 图中看到的那样,我有 2 个包,但是当我尝试在模型和视图之间进行交互时遇到了一些问题。
model.Main由model.Files组成,model.Files由ConfigFile、DivaConnector和FilesUploader组成。
你能帮忙在这些 class 之间建立正确的链接吗?
控制器允许在模型和视图之间进行通信。因此,您将 main class 作为启动器放在 extern 包中,并使用模型和视图作为参数实例化控制器。您的主控制器可以实例化每个视图特定的一些控制器。
class Main
{
public static void main(String args[]) throws IOException
{
Model model = new Model();
View view = new View();
Controller controller = new Controller(view, model);
}
}
编辑:
这里是主控制器的示例,在每个特定的控制器构建器中,您将放置一些侦听器(按钮、表格视图、文本字段...),因为您同时拥有模型和视图,您可以根据模型更改图表元素。
package Controller;
import Model.Data;
import View.Frame;
public class Controller{
private Frame frame;
private Data data;
//controller
private GraphCtrl graphCtrl;
private MenuCtrl menuCtrl;
private EditCtrl editCtrl;
private TableCtrl tableCtrl;
//builder
public Controller(Frame frame, Data data){
this.frame=frame;
this.data=data;
build();
}
public void build(){
graphCtrl = new GraphCtrl(frame.getPanelG(), data);
menuCtrl = new MenuCtrl(frame, data);
editCtrl = new EditCtrl(frame.getPanelS().getPanelEdit(), frame.getPanelG(), data);
tableCtrl = new TableCtrl(frame.getPanelS().getPanelTable(), frame.getPanelG(), data);
}
}
我需要制作一个使用 MVC 模型的 java 应用程序(我不会使用控制器以避免事情变得复杂)。
正如您在下面的 class 图中看到的那样,我有 2 个包,但是当我尝试在模型和视图之间进行交互时遇到了一些问题。
model.Main由model.Files组成,model.Files由ConfigFile、DivaConnector和FilesUploader组成。
你能帮忙在这些 class 之间建立正确的链接吗?
控制器允许在模型和视图之间进行通信。因此,您将 main class 作为启动器放在 extern 包中,并使用模型和视图作为参数实例化控制器。您的主控制器可以实例化每个视图特定的一些控制器。
class Main
{
public static void main(String args[]) throws IOException
{
Model model = new Model();
View view = new View();
Controller controller = new Controller(view, model);
}
}
编辑: 这里是主控制器的示例,在每个特定的控制器构建器中,您将放置一些侦听器(按钮、表格视图、文本字段...),因为您同时拥有模型和视图,您可以根据模型更改图表元素。
package Controller;
import Model.Data;
import View.Frame;
public class Controller{
private Frame frame;
private Data data;
//controller
private GraphCtrl graphCtrl;
private MenuCtrl menuCtrl;
private EditCtrl editCtrl;
private TableCtrl tableCtrl;
//builder
public Controller(Frame frame, Data data){
this.frame=frame;
this.data=data;
build();
}
public void build(){
graphCtrl = new GraphCtrl(frame.getPanelG(), data);
menuCtrl = new MenuCtrl(frame, data);
editCtrl = new EditCtrl(frame.getPanelS().getPanelEdit(), frame.getPanelG(), data);
tableCtrl = new TableCtrl(frame.getPanelS().getPanelTable(), frame.getPanelG(), data);
}
}