-1

classセッションオブジェクトにアクセスできないutilがあります。この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 に答える