-1

我有一个class无法访问会话对象的工具。我只想初始化这个 util 类一次,login并希望在整个应用程序中获取该实例。

在这里,每个用户都需要有自己的那个 util 类的实例,如何实现这一点。

请帮我

4

3 回答 3

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;
    }
于 2012-11-12T15:31:55.307 回答
0

使用工厂模式怎么样。然后您可以将参数传递给工厂方法并为每个用户返回一个新实例。

于 2012-11-12T15:35:25.887 回答
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.

于 2012-11-12T15:49:15.567 回答