(同期ロックが使用されていない)マルチスレッドセーフシングルトンインスタンス
パブリック クラスシングルトン{ プライベート 静的シングルトンのSiN = 新しいシングルトン(); // /物体のインスタンスを初期化し、直接 プライベートはシングルトン(){ // /プライベートコンストラクタタイプ、オブジェクトの他のタイプは、直接オブジェクトの新しいインスタンスを確保することができない } 公開 静的シングルトンgetSin(){ // /クラス唯一のパブリックメソッド の戻りのSiN。 } }
新しい静的オブジェクトを直接システムから多くのそのようなクラスは、それが開始を遅くするであろうときにすることにより、前述したクラスコードの一つの欠点は、ロードされます。人気のデザインが今話している「遅延ロード」、私たちは、最初のクラスオブジェクトを最初の使用を初期化することができます。だから、これは小規模なシステムに適しています。
第二に、マルチスレッドセーフシングルトン例つ(同期方法を使用して)
パブリック クラスシングルトン{ プライベート 静的シングルトンインスタンス。 プライベートシングルトン(){ } パブリック 静的シングルトンのgetInstance(){ // 同期例取得方法 IF(例えば== NULL ){ 同期(シングルトン。クラス){ IF(例えば== NULL ) インスタンス = 新しいシングルトン()。 } } 返すインスタンスを。 } }
しかし、それは我々がここで内部クラスで、それは、同時実行原因があるかもしれないオブジェクトの属性がロードできない場合は、この場合には、他のオブジェクトのプロパティを表示される場合がありますので、このような方法は、非常に良いではありませんので、この時、我々はリミット定義された変数の初期化と相まって時間を定義する必要があります。
プライベート検証静的シングルトンインスタンス。