2011-01-10 9 views
1

私は以下のことをしたい:私は、静的セクションで、ロード時にプロパティXMLファイルを読み込むクラスをたくさん持っている。プロパティファイルを共有するファイルもあるため、同じファイルを繰り返し読み込むのは愚かなことです。静的プロジェクト全体の環境設定システムを実装する方法は?

すでにロードされているプロパティファイルのインスタンスを要求するすべてのクラスに返すシングルトンクラスを作成します。これまでのところ、とても単純です。

しかし、私はロードする必要があるこれらのファイルのいくつかを持っているので、ファイルの読み込みを処理するための静的な基底クラスを記述し、各サブクラスのディテールをObject-Orientそれらは単にロケーションフェッチクラスメソッドを実装するだけです。

そして、私は静的継承のようなものが存在しないことを学んだ...

は、どのように私は、静的な継承に依存せずにこれを実装することができますか?

+0

ここに継承が必要ですか?あなたが必要とするのは、プロパティをロードするクラスと、ロードするファイルをパラメータとして持つことだけです。 – nos

+0

異なる設定ファイルが異なる機能を管理しているため、すべての設定を1つのファイルにまとめる必要はありません。このようにして、各パッケージまたはクラスのセットは1つの設定クラスによって管理され、別の設定クラスを実装するために必要なのは、ベースに具体的な場所を与えることによってベースをサブクラス化することだけです。 – Alex

答えて

1

がどのようにロードするファイルを指定していますか?それだけでなく複数のファイルを指定することは可能でしょうか?

また、シングルトンパターンを使用して再考します。おそらく依存関係注入を使用して、それを必要とする任意のクラスにPreferencesインターフェースを注入することができます。たとえば、SpringがApplicationContextを介してMessageSourceインタフェースを提供する方法を考えてみましょう。

0

1つのオプションは、エクステンダが実装する必要のある抽象メソッドを持つ抽象基本クラスを実装することです。

例:(簡単なメソッド名を言い訳してください)

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

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

} 
関連する問題