黒馬プログラマー-java小結_007_単例設計モード(怠け者式、餓漢式)
--------androidトレーニング、javaトレーニング、ご交流をお待ちしております!--------
便利さと安全のためにjavaの先輩たちはnマルチモードをまとめ、怠け者式と餓漢式がよく使われています.
このモードの目的:アプリケーション全体に1つのインスタンスがあり、そのタイプのインスタンスへの参照はすべてこのインスタンスを指します.
オブジェクトの一意性を保証するには
1.他のプログラムがオブジェクトを作成しすぎないように、他のプログラムがオブジェクトを作成することを禁止します.
2.他のプログラムがそのオブジェクトにアクセスできるように、このクラスでオブジェクトをカスタマイズするしかありません.
3.他のプログラムによるカスタムオブジェクトへのアクセスを容易にするために、いくつかのアクセス方法を外部に提供することができます.
この3部はコードで実現される
1.コンストラクション関数をプライベート化します.
2.クラスにこのクラスオブジェクトを作成します.
3.オブジェクトを取得する方法を提供します.
餓漢式
これはまずオブジェクトを初期化します.
助记:お腹が空いたら食べなさい.そんなに気にしないで、まずオブジェクトを作ってからにしましょう.お腹が空いています.
*************************************************
怠け者風
オブジェクトはメソッド呼び出し時に初期化され、オブジェクトの遅延ロードとも呼ばれます.
助记:すぐに分からないことができて、先にオブジェクトを作成しないで先にオブジェクトを作成しないことができて、怠け者です!
singleクラスはメモリに入り、オブジェクトはまだ存在せず、getIntanceメソッドを呼び出す場合にのみオブジェクトが確立されます.
--------androidトレーニング、javaトレーニング、ご交流をお待ちしております!--------
便利さと安全のためにjavaの先輩たちはnマルチモードをまとめ、怠け者式と餓漢式がよく使われています.
このモードの目的:アプリケーション全体に1つのインスタンスがあり、そのタイプのインスタンスへの参照はすべてこのインスタンスを指します.
オブジェクトの一意性を保証するには
1.他のプログラムがオブジェクトを作成しすぎないように、他のプログラムがオブジェクトを作成することを禁止します.
2.他のプログラムがそのオブジェクトにアクセスできるように、このクラスでオブジェクトをカスタマイズするしかありません.
3.他のプログラムによるカスタムオブジェクトへのアクセスを容易にするために、いくつかのアクセス方法を外部に提供することができます.
この3部はコードで実現される
1.コンストラクション関数をプライベート化します.
2.クラスにこのクラスオブジェクトを作成します.
3.オブジェクトを取得する方法を提供します.
餓漢式
これはまずオブジェクトを初期化します.
助记:お腹が空いたら食べなさい.そんなに気にしないで、まずオブジェクトを作ってからにしましょう.お腹が空いています.
<span style="font-size:18px;">class Single
{
private Single(){};
private static single s =new single();//
public static SinglegetInstance()
{
return s;
}
}</span>
*************************************************
怠け者風
オブジェクトはメソッド呼び出し時に初期化され、オブジェクトの遅延ロードとも呼ばれます.
助记:すぐに分からないことができて、先にオブジェクトを作成しないで先にオブジェクトを作成しないことができて、怠け者です!
singleクラスはメモリに入り、オブジェクトはまだ存在せず、getIntanceメソッドを呼び出す場合にのみオブジェクトが確立されます.
<span style="font-size:18px;">class Single
{
private Single(){};
private static Single s = null;
public static SinglegetInstance()
{
if(s == null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single;
}
}
return s;
}
}</span>
--------androidトレーニング、javaトレーニング、ご交流をお待ちしております!--------