2016-12-02 22 views
0

シングルトンはパラメータで初期化する必要があります。私は静的なブロックを使用して、セッターメソッドの代わりにシステムプロパティからパラメータを取得したい。このシングルトンは同時に使われるかもしれないのでsetterを使いたくないので、setterを同期させたくありません。私はそれをシングルトンにするためにenumを使用し、enumは実行時パラメータでインスタンスを定義することができないので、コンストラクタを使用したくありません。Javaのシングルトンでシステムプロパティを使用するとよいですか?

私はシステムプロパティの代わりにセッターを使用する必要がありますか?私はそれが非常にプログラムのようなものではないJavaアプリケーションを起動するために気を付ける別のことを意味することを知っています。ありがとう。

答えて

0

あなたは正しいです。システムのプロパティは静的なので、スタティックなホルダーを作成しないのはなぜですか?

public class MyConstants { 

    public static final String FILE_SEPARATOR = System.getProperty("file.separator"); 
    public static final String LINE_SEPARATOR = System.getProperty("line.separator"); 

をしてからMyConstants.FILE_SEPARATORとしてそれらを使用するか、MyConstants.LINE_SEPARATOR

: 代わりにはSystem.getPropertyからfile.separatorまたはline.sparatorを取得する例として、私はそれらを必要とするたびに私は、このようにそれらを持つことができます

好きなコードスタイルの問題です。反対側:静的ではないセッターまたはコンストラクターで、同じクラスの異なるインスタンスを異なる値で持つ場合に必要なパラメーターがあります。静的セッターは、しばしば必要とされることはありません... Springのようなフレームワークが使用されている、あるいはクラスレベル属性の実際の値がシステムプロパティにではなく、種類の.propertiesファイルのどこかにあるときちょうどいつか

関連する問題