在单个 JDesktopPane 上的多个 JInternalFrames 之间实现共享数据对象的最有效方法是什么?
不确定是使用单例还是可以将数据对象放在 JDesktopPane 中并从组件访问?我不想为每个帧(很多帧)保留此数据的单独实例
在单个 JDesktopPane 上的多个 JInternalFrames 之间实现共享数据对象的最有效方法是什么?
不确定是使用单例还是可以将数据对象放在 JDesktopPane 中并从组件访问?我不想为每个帧(很多帧)保留此数据的单独实例
我会避开单例(因为它类似于使用全局变量 - 请参阅此处获取描述),而是使用子类JInternalFrame
来包含对共享数据对象的引用;例如
public class MyInternalFrame extends JInternalFrame {
private final SharedData data;
public MyInternalFrame(SharedData data) {
this.data = data;
}
}
显然,尽管对您的 SharedData 有多个引用(每个 MyInternalFrame 实例一个),但SharedData
您的系统中仍然只有一个对象;即你没有用这种方法复制数据。