2012-09-27 37 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