java中的MVC Conception

时间:2015-04-23 07:30:33

标签: java model-view-controller class-diagram

我需要创建一个使用MVC模型的java应用程序(我不会使用控制器来避免这种情况变得复杂)。

因此,您可以在下面的类图中看到我有2个包,但是当我尝试在模型和视图之间进行交互时遇到了一些问题。

model.Main由model.Files和model.Files组成,由ConfigFile,DivaConnector和FilesUploader组成。 你能帮助在这些课程之间建立正确的联系吗? enter image description here

1 个答案:

答案 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);
	}
}