設計モードの一例設計モード
シングルデザインモード
特徴:
(1)一例クラスには一例しかない
(2)単一インスタンスクラスは独自の一意のインスタンスを作成する必要がある.
(3)この例を他のオブジェクトに提供する必要がある.
書き方:怠け者式単例、餓漢式単例、登録式単例
怠け者式と餓漢式の比較:
(1)餓漢式:Singleクラスはメモリに入ると既にオブジェクトが作成されている.怠け者:Singleクラスはメモリに入り、オブジェクトはまだ存在せず、getInstanceメソッドが呼び出された場合にのみオブジェクトが確立されます.
(2)開発時は一般的に餓漢式で、簡単、安全である.怠け者式は安全上の危険性があり、鍵をかける必要がある.
(3)実現:
特徴:
(1)一例クラスには一例しかない
(2)単一インスタンスクラスは独自の一意のインスタンスを作成する必要がある.
(3)この例を他のオブジェクトに提供する必要がある.
書き方:怠け者式単例、餓漢式単例、登録式単例
怠け者式と餓漢式の比較:
(1)餓漢式:Singleクラスはメモリに入ると既にオブジェクトが作成されている.怠け者:Singleクラスはメモリに入り、オブジェクトはまだ存在せず、getInstanceメソッドが呼び出された場合にのみオブジェクトが確立されます.
(2)開発時は一般的に餓漢式で、簡単、安全である.怠け者式は安全上の危険性があり、鍵をかける必要がある.
(3)実現:
// , : 。
class Single
{
private int num;
public void setNum(int num){
this.num = num;
}
public int getNum(){
return num;
}
//
private Single(){}
// ,
private static Single s = new Single();
// , ,
public static Single getInstance(){
return s;
}
}
//
class Single{
private static Single s = null;
private Single(){}
public static Single getInstance(){
if(s == null)
{
synchronized(Single.class){
if(s==null) //
s = new Single();
}
}
return s;
}
}