在我的 Java 应用程序中,我有一个复杂的 GUI,它有一定的 JPanel(自定义控件)重复,比如说,100 次(实际上它可能更多,但我不想让这个例子太复杂)。这 100 个 JPanel 中的每一个都包含 4 个 JTextBox 控件,它们向用户显示某些值。
一个面板的 JTextBoxes 可能是空的,而在另一个面板中只有一个可能有值,在其他一些中,所有框可能会显示一些数字,你明白了 - 我不知道哪个面板的哪个文本框将包含哪些数据。
现在,为了减少内存占用,我开始学习 Flyweight 设计模式。这似乎正是我需要的东西,但是,如果我保留一个 JPanel 作为种子,并用它来表示其他 99 个面板(只是相应地更改 JTextBox 值),这意味着所有这些面板将共享共同的参考。
在这种情况下,更改其中一个中的 JTextBox 值也会更改所有其他值中的值,对吗?如何克服这个问题,并且仍然保持应用程序的低内存占用?
我错过了什么吗?