我有一个util class
,其中没有访问会话对象的权限。我想在login
期间仅初始化此util类一次,并希望在整个应用程序中获取该实例。
这里每个用户都需要拥有自己的util类实例来实现这一点。
请帮帮我
答案 0 :(得分:2)
private static MyClass instance;
private MyClass(){}
public static MyClass getInstance() {
if (instance != null) {
return instance;
} else {
return new MyClass();
}
}
public static void setInstance(MyClass inst) {
instance = inst;
}
答案 1 :(得分:0)
如何使用factory pattern。然后,您可以将参数传递给factory方法,并为每个用户返回一个新实例。
答案 2 :(得分:0)
我同意@GanGnaMStYleOverFlow关于单身人士,但希望提供更好的实施版本:
public class MyClass {
private static MyClass instance;
private MyClass() {}
public static synchronized MyClass getInstance() {
if (instance != null) {
instance = new MyClass();
}
return new MyClass();
}
}
此类无法直接实例化,因为构造函数是私有的。您无法创建此类的2个实例,因为它由getInstance()
管理。此实现是线程安全的,因为getInstance()
是synchronized
。