Java設計モード——単例設計モード


我々が一般的に学習した最初の設計モードは,単一設計モードが我々のプログラム開発に広く応用されているため,単一設計モードである.今日は皆さんと简単に単例设计モードについて话します.Javaの基础を勉强し始めたばかりの时、単例を理解しました.一部の学生は勉强する时、とても困惑して、単例とは何か分かりません.どんなシーンで単例设计モードを使うか分かりません.
まず、単一の例の概念について説明します.クラスにインスタンスが1つしかないことを保証し、グローバル・アクセス・ポイントを提供します.
概念を通じて簡単に知ることができて、いわゆる単例のモードは私たちが定義したクラスが私たちのプログラムの中でnewが1つの対像(インスタンス)しか出せないことを保証します.特定の状況では、クラスを一度だけインスタンス化することを許可します.この場合、単一の設計モードを使用する必要があります.
たくさんお話ししましたが、初級の単例を書いて見せましょう.
Class Single
{
private static Single instance;
Private Singleton(){}
Public static Single getInstance(){
If(instance == null){
Instance = new Single();
}
Return instance;
}
}

このクラスが一度だけインスタンス化されることをどのように保証するかを見ることができます.まず、1、私たちはその構造関数を私有化し、外部のクラスが彼をインスタンス化できないことを確保します.2.現在のクラスオブジェクトを取得するための静的メソッドを提供します.
外部クラスがこのクラスオブジェクトにアクセスしたい場合は、クラス名.getInstance()の方法でSingleのクラスオブジェクトを取得できます.
単例設計モードはまた2種類に分けられ,満腹漢式と餓漢式である.
満漢式:
  
/** 
 *    (   )----    , ,     new(     ) 
  */ 
public class Single1 {  
    //      final,               。  
    //  final,       null ,             。  
//      ,        ,                。                。  
Priavte Single1
    private static Single1 SingleInstance;  
   
    private Singlet1() {  
    }  
   
    public static Single1 getSingleInstance() {  
        if (SingleInstance == null) {  
            //     ,      ,  
            //  A    ,     null,  B         OK    。  
            //  A           new   ,  B  new   。  
            //           。          
            SingleInstance = new Single1();  
        }  
        return SingleInstance;  
}

餓漢式:
public class Single2 {  
    //    final   (    ),  final     ,           。  
    //  final   :final        ,       ,         。  
    //        :  
    //    final  。  
    //             ,                 ;  
    //           ,                      。  
    private static final Single2 SingleInstance = new Single2();  
   
    private Single2() {  
    }  
   
    public static Single2 getSingleInstance() {  
        return SingleInstance;  
    }  
}

Good luck!
Write by Jimmy.li