在单个 JDesktopPane 上的多个 JInternalFrame 之间实现共享数据对象的最有效方法是什么?
不确定是否使用单例,或者我可以将数据对象放入 JDesktopPane 并从组件进行访问吗?我不想为每个帧(很多帧)保留此数据的单独实例
最佳答案
我会避开单例(因为它类似于使用全局变量 - 有关说明,请参阅 here),而使用子类 JInternalFrame
来包含对共享数据对象的引用;例如
public class MyInternalFrame extends JInternalFrame {
private final SharedData data;
public MyInternalFrame(SharedData data) {
this.data = data;
}
}
显然,尽管有多个对 SharedData 的引用(每个 MyInternalFrame 实例一个),系统中仍然只有一个 SharedData
对象;也就是说,您不会使用这种方法复制数据。
关于java - 多个 JInternalFrame 之间的共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272300/