設計モードの一例(Singleton)モード(一)


一、パターンとは何ですか.ソフトウェアのモードは最初は建築学のモードに起源して、javaデザイナーに対してその上、javaソースコードはソフトウェアの基本的な構成部分で、これらのソースコードが集まる“形”、その中のいくつかの“形”は繰り返し現れて、いくつかの典型的な問題に対する典型的な解決策を構成して、そこである人はそれをモードにまとめます.コミュニケーションとコミュニケーションを容易にするために、人々はこれらの形に区別できる名前を定義しました.
二、「形」の尺度パターンによって、「コードパターン」、すなわち文からなる「形」に分けることができる.「設計モード」、すなわちクラスとオブジェクトからなる「形」である.「スキーマ・モード」、すなわち、大きなスケールのコンポーネントからなる「形」です.
三、単例モードとは何ですか.単一のインスタンス・モードは、クラスが1つのインスタンスしかないことを確認し、独自にインスタンス化し、システム全体にこのインスタンスを提供することです.このクラスを単例クラスと呼ぶ.
要点:1、このクラスには1つのインスタンスしかありません.2つ目は、このインスタンスを自分で作成する必要があります.3つ目は、システム全体にこのインスタンスを独自に提供する必要があります.
<1>.餓漢式

/** */
public class Singleton
{
private static final Singleton _instance = new Singleton();
/** */
private Singleton(){
}
/** */
public static Singleton getInstance()
{
return _instance;
}
}

Singletonというクラスがロードされると、静的変数_instanceが初期化され、クラスのプライベート構造が呼び出されます.Singletonの唯一のインスタンスが作成されました.Java言語における単一のクラスの最も重要な特徴は、クラスの構造がプライベートであることであり、外部が構造を利用して任意の多くのインスタンスを直接作成することを回避することである.構造は私有であるため、このようなものは継承できません.
<2>.怠け者風
餓漢式と同じように、類の構造は私有である.餓漢式とは異なり,怠け者式単例モードは初めて引用されたときに自分をインスタンス化する.ローダが静的である場合、怠け者式の単一例がロードされても、独自のインスタンス化は行われません.コードは次のとおりです.

/** */
public class Singleton
{
private static Singleton
_instance = null;
/** */
private Singleton(){}
/** , */
public synchronized static Singleton getInstance()
{
if(_instance==null)
{
_instance = new Singleton();
}
return _instance;
}
}