Java列挙型でシングルトンを実装しようとしています。
しかし、コンストラクターが初めて初期化されるときに、いくつかのパラメーターをコンストラクターに渡したいとも考えています。
どうすればそれを達成できますか?パラメータ付きのシングルトンを持つことは良い習慣ですか?
public enum DaoManager {
INSTANCE;
private static ILog logger; //for passing the logger;
private static DatabasePool pool; //passing the Database pool
public void init(ILog logger, DatabasePool pool){
this.logger = logger;
this.pool = pool;
}
}
現在、init メソッドを使用してロガーとデータベース プールを DaoManager に渡しています。
しかし、クライアントが init() メソッドの呼び出しに失敗すると、失敗する可能性が高くなります。
誰かがこれを行う方法を教えてもらえますか?