2011-01-10 36 views
1

我想要做以下事情:我有一堆在加載時讀取屬性XML文件的靜態部分的類。有些文件甚至共享一個屬性文件,所以讓他們重複加載同一個文件是很愚蠢的。如何實現靜態項目範圍的偏好系統?

我想創建一個單例類,它將一個已經加載的屬性文件實例返回給請求它的任何類。到目前爲止,這麼簡單。

但是,我有幾個需要加載的文件,所以自然會想到編寫一個靜態基類來處理讀取文件,然後通過讓對象定位每個子類的詳細信息他們只是實現一個位置獲取類的方法。

然後,我才知道,有沒有這樣的東西作爲靜態繼承...

我如何能實現這一點沒有依靠靜態的繼承?

+0

您確定您需要繼承嗎?這聽起來像你所需要的只是一個加載屬性的類,並將該文件作爲參數加載。 – nos 2011-01-10 18:00:47

回答

1

你是如何指定文件被加載?是否可以指定多個文件而不只是一個文件?

我也會重新考慮使用單例模式。你可以使用依賴注入來將你的Preferences接口注入到任何需要它的類中。例如,考慮Spring通過其ApplicationContext提供MessageSource接口的方式。

0

一種選擇是用抽象方法實現一個抽象基類,Extenders需要實現該抽象方法來指定位置獲取類方法。

例如:(請原諒簡單的方法名)

public abstract class BaseReader { 
    public List<Property or whatever> readFile() { 
    // common reading logic here 
    } 

    public abstract String getXmlFileLocation(); // subclasses implement this 

}