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