JAvaにおける単例設計モード

1303 ワード

単一設計モード:
   メモリ内のクラスのオブジェクトの一意性を保証するために表示されます.複数のプログラムで同じ構成情報オブジェクトを使用する場合は、そのオブジェクトの一意性を保証する必要があります.
 
単例設計の思想
1、他のプログラムがnewでクラスオブジェクトを作成することは許されません.
2.このクラスにこのクラスインスタンスを作成します.
3、対外的に一つの方法を提供して、他のプログラムがこの種類のオブジェクトを取得できるようにする
 
手順:
1、このクラスの構造関数を私有化する
2、newで本クラスに本クラスオブジェクトを作成します.
3、他のプログラムがそのクラスのオブジェクトを取得できるように、対外的に方法を提供する.
 
単一の設計モードには一般的に2つの一般的な使用があります.
餓漢式:一般的に開発に用いられる
class Single//            。
{
	private static Single s=new Single();
	
	private Single(){}
	
	public static Single  getInstance()
	{
		return s;
	}
}

怠け者:
class Single2//     ,    ,     getInstance   ,      。
			//      
{
	private static Single2 s=null;
	private Single2(){}

	public static Single2 getInstance()
	{
		if (s==null)
		{
			s=new Single2();
			return s;
		}
	}
}

怠け者は空腹よりもメモリを節約します.最初からオブジェクトを作成する必要がないため、メモリの使用を減らします.
餓漢式はマルチスレッドの問題に注目する必要はありません.クラスをロードするとデフォルトの静的オブジェクトが存在し、マルチスレッドの問題では同期ロックの問題に注目する必要はありません.
一方、怠け者式はメソッドでオブジェクトを作成するため、マルチスレッドにsynchronized同期ロックを追加し、同時に複数のスレッドが同時に1つのオブジェクトを作成することを防止します.
これはjavaでは許されません.