我需要创建一个使用MVC模型的java应用程序(我不会使用控制器来避免这种情况变得复杂)。
因此,您可以在下面的类图中看到我有2个包,但是当我尝试在模型和视图之间进行交互时遇到了一些问题。
model.Main由model.Files和model.Files组成,由ConfigFile,DivaConnector和FilesUploader组成。 你能帮助在这些课程之间建立正确的联系吗?
答案 0 :(得分:0)
控制器允许在模型和视图之间进行通信。因此,您将主类作为启动器放在extern包中,然后使用模型和视图将控制器设置为args。您的主要控制器可以实现每个视图特定的一些控制器。
class Main
{
public static void main(String args[]) throws IOException
{
Model model = new Model();
View view = new View();
Controller controller = new Controller(view, model);
}
}
编辑: 这里是主控制器的一个示例,在每个特定的控制器构建器中,您将放置一些侦听器(按钮,tableview,textfield ...),因为您有模型和视图,您可以根据模型更改图表元素。
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);
}
}