【发布时间】:2013-01-29 06:15:04
【问题描述】:
我正在尝试使用 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() 方法失败,那么很有可能失败。
有人可以指导我如何做到这一点吗?
【问题讨论】:
-
您现在可以设置
static字段而无需类实例吗? -
你不能用
enum做你想做的事,这种静态是一个糟糕的计划。
标签: java design-patterns