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

angryTom
リリース: 2019-11-26 15:45:37
転載
1907 人が閲覧しました

コードは 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート