2010-03-16 71 views
1

我正在編寫一個應用程序,在那裏我實現了幾個不同的窗口,其中每個窗口都是獨立的類。現在我需要以某種方式將一個配置對象傳遞給它們。我的GUI的設計方式是,我有一個主窗口,它可以創建自己的一些子窗口,這些子窗口可以有自己的子窗口(所以不可能在初始化部分創建所有窗口並提供配置從一開始就反對它們)...將配置傳遞給每個GUI對象的最佳實踐

什麼是在它們之間共享這個配置對象的最佳實踐?總是通過構造函數傳遞,或者在某個地方作爲final public static並讓每個窗口對象在需要時訪問它?

謝謝

回答

3

總是通過構造函數。避免可變靜態。

這聽起來像你在舊學校擴展一切。如果一個類不需要擴展(通常,如果你不覆蓋任何方法),那麼不要擴展它。 「更喜歡繼承的組合。」

OTOH,一個大「知道一切;一切都知道」的情境類也不好。保持小事情,每個班級都在做一件事(對於「一件事」的某些合適的定義)。

+0

怎麼樣FacesContext? – Roman 2010-03-16 22:48:58

+1

像湯姆說的那樣做! – fabrizioM 2010-03-16 22:49:35

-2

在這種情況下,我寧願你的第二種方法。喜歡的東西:

Configuration.getCurrentConfig(); 

我也通過繼承JFrame的進一步繼承看到了類似的問題的解決方案:

public abstract class BasicFrame extends JFrame { 

    protected BasicFrame (Map<String, String> configParams) { 
     ... 
    } 
} 

public class SomeFrame extends BasicFrame { 

    public SomeFrame (Map<String, String> configParams, String title) { 
     super (configParams); 
     ... 
    } 
}