0

在单个 JDesktopPane 上的多个 JInternalFrames 之间实现共享数据对象的最有效方法是什么?

不确定是使用单例还是可以将数据对象放在 JDesktopPane 中并从组件访问?我不想为每个帧(很多帧)保留此数据的单独实例

4

1 回答 1

1

我会避开单例(因为它类似于使用全局变量 - 请参阅此处获取描述),而是使用子类JInternalFrame来包含对共享数据对象的引用;例如

public class MyInternalFrame extends JInternalFrame {
  private final SharedData data;

  public MyInternalFrame(SharedData data) {
    this.data = data;
  }
}

显然,尽管对您的 SharedData 有多个引用(每个 MyInternalFrame 实例一个),但SharedData您的系统中仍然只有一个对象;即你没有用这种方法复制数据。

于 2010-02-16T11:06:53.683 回答