2012-09-27 41 views
0

我刚刚从前使用卡布局的同事继承了一个swing应用程序。Java卡布局许多静态变量

它有大约40个不同的JPanel卡,它们都是静态的,组成GUI。

这些静态面板中的每一个都有一个不同的类,每个类都有大约50个各自的静态变量,它们都从同一个超类继承而来,这是JPanel的一个子类。

为了便于阅读,我打算尽可能多地将这50个静态变量和方法放入父类中。

我担心的是,所有这些静态变量和JPanel在不需要时都会驻留在内存中。

我想知道这是否应该创建一个屏幕上的图形用户界面或者如果有更有效的方法?

+0

要问的一个更好的问题是“为什么这些变量是静态的?” – parsifal

+0

好点,答案一般是没有理由的。我只是经历了许多考虑因素,没有理由让它们变成静态的。 – Quinma

回答

0

副手,它听起来并不特别优雅,但这并不意味着这是一个糟糕的设计。

就内存使用而言,2,000个变量不是很多内存,除非它们是大数据结构。我想知道有多少静态变量可以被重构。毕竟,两个子类中的static int sFoo;是内存中的两个变量,它们可能服务于不同的目的。将它们放入公共超类意味着现在只有一个变量,并且(可能)多个目的现在可能会发生冲突。

此外,效率在旁观者的眼中。不知道细节,很难说是否一堆静态面板是最有效的初始化应用程序的方式。另一种效率是使用你的时间。这个问题在我看来,是根据需要进行修补以维护应用程序更高效,还是花费大量时间进行前期重构会更有效率,希望将应用程序维持在更短的时间内。谁知道?我对这样的事情的一般理念是,“如果它没有损坏,不要修复”。

+0

我很欣赏这个输入法,你能提供一些建议吗?当我通过屏幕说屏幕时,我的意思是你必须完成卡A上的步骤才能到达卡B,卡B可以分叉到卡C1或C2等。仅仅为了我自己的好奇心。谢谢 – Quinma

+0

@Quinma - 听起来像一个巫师。看看[这个线程](http://stackoverflow.com/questions/88889/recommend-a-java-wizard-library)关于可用框架的一些(可能过时的)信息,或者在网络上搜索_java向导framework_找到更多的最新信息。 –

+0

完美。谢谢 – Quinma