关于以下Java类:
public class GuiController {
private GuiView view;
public GuiController(GuiView view){
this.view = view;
}
//responds to user inputs to GuiView
}
public class GuiView {
//interacts with user
}
//lives in the Servlet context
public class SomeLongLifeClass {
private GuiView view;
public SomeLongLifeClass(){
this.view = new GuiView();
new GuiController(view);
}
}
GuiController最终会被垃圾收集,因为它没有外部引用吗?它不应该是因为它与被引用的GuiView
积极交互,我只能解决原因。
在第二个问题中,如果不是这样的话,应该如何实现视图/控制器模式?
答案 0 :(得分:3)
原样,是的,您的GuiController实例符合GC的条件。在更现实的代码中,您可能会将控制器作为监听器(直接或间接)注册到GuiView组件,因此控制器将从视图中引用,该视图本身由GUI线程引用。