我正在尝试在 Java 中实现某种 MVC。实际上,它更像是一个 MVP,但这对我的问题并不重要。
以下情况:我有一个使用 Netbeans 制作的 GUI(因为有更好的 GUIeditor),它经常更新和更改。
由于我的主项目在 Eclipse 中更易于维护,因此我选择将 Netbeans 项目作为单独的项目导入 Eclipse。所以这里我有一个App
包含控制器和模型包的项目“ GUI
”和一个包含视图包的项目“”。问题是我遵循的模式在视图和控制器之间具有循环依赖性。每当视图更改时,控制器都会收到通知,决定从模型中获取哪些数据,然后对视图进行更改。
当我添加App
到构建路径时GUI
,反之,我将收到此错误消息“在项目'GUI'的构建路径中检测到循环”。我的意思是这是真的,这个循环已经在我的设计中了。
目前在启动时,我通过以下方式向其控制器注册一个视图(这不是真正的代码,我正在尝试缩短它)
package view;
import controller.*;
class viewA{
...
public viewA() {
controllerA.register(this);
}
...
}
package controller;
import view.*;
class controllerA implements SomeListener{
...
protected viewA[] registeredViews;
public static register(viewA interestedView){
arrayPush(registeredViews,interestedView);
interestedView.addSomeListener(this)
}
...
}
因此,您会看到连接是通过将引用传递给控制器然后将侦听器注册到此视图来建立的。问题是:如果我GUI
在 's buildpath 中没有项目,App
则无法解决导入问题,在没有 in 's buildpath 时也会发生同样的App
情况GUI
。
我想保留这个项目结构并坚持我的 MVC 架构。我该如何解决它?你有什么建议?