ホームページ  >  記事  >  Java  >  コードは Java のシングルトン パターンを説明しています

コードは Java のシングルトン パターンを説明しています

angryTom
angryTom転載
2019-11-26 14:37:231905ブラウズ

コードは Java のシングルトン パターンを説明しています

シングルトン パターンは、最も一般的に使用されるデザイン パターンの 1 つであると言えます。その主な機能は、クラスのインスタンスが 1 つだけであることを保証し、アクセスするためのグローバル アクセス ポイントを提供することです。ユーザーのアクセス方法。

シングルトン モードは、レイジー モードとハングリー モードに分かれています。まず、ハングリー モードについて説明します。空腹モード ずっとお腹が空いている人のように、食べ物がおいしいか食べられるかに関係なく、誰かが何かをくれる限り食べます。コードは次のとおりです:

public class Singleton {
    private static Singleton instance = new Singleton();

    private Singleton (){}

    public static Singleton getInstance() {
        return instance;
    }

}

誰もが意味を知っています。これは静的初期化メソッドです。クラスがロードされるとすぐにオブジェクトがインスタンス化されます。利点はスレッド セーフですが、欠点はスレッド セーフであることです。システムリソースを事前に設定してください。この時点で、遅延モードが表示されます。 (推奨ビデオ:

Java ビデオ チュートリアル

)

遅延モード

食べ物を選ばない腹ペコモードに比べ、怠け者モードは食べ物が口に運ばれて初めて食べる、そうでないとどんなにお腹が空いても口を動かさないモードです。コードは次のとおりです。

public class Singleton{

    private static Singleton instance;

    private Singleton(){}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
ただし、複数のスレッドが getInstance() メソッドを同時に呼び出すと、複数のインスタンスが作成される可能性があるため、このバージョンのスレッドは安全ではないため、次のバージョンを使用します。
public class Singleton {

    private static Singleton instance;

    private Singleton (){}

    public static Singleton getInstance() {
        if (instance == null) {  
            synchronized (Singleton .class) {  
            if (instance == null) {  
                instance = new Singleton ();  
                }  
            }  
        } 
        return instance;
    }
}

インスタンス == null の場合、getInstance() メソッドを呼び出すときに複数のスレッドが最初のレベルの判定を通過できるようにするには、二重ロック メソッドを使用します。

通常の状況では、Hungry Han のシングルトン モードはほとんどのニーズを満たすことができます。これがシングルトン モードの基本的な状況です。

この記事は、php 中国語 Web サイトの

java チュートリアル

コラムからのものです。学習へようこそ!

以上がコードは Java のシングルトン パターンを説明していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。