設計モードの一例モード(Singleton)
2330 ワード
1.単一モードとは
2.単例モードを使用する理由:
3.単一モードのサンプルコード:
4.マルチスレッド環境での単一モードの最適化
5.現在、私が開発環境で使用している単一のパターンコード
今回は単例モードを説明しましたが、明後日退勤したら工場モードを説明します.
もし本文にBUGが现れたら、メッセージを残してください.ありがとうございます.小生はjavaスキルを新しい高度に向上させるために努力しています.
, , new , , , jvm
2.単例モードを使用する理由:
1. , , new, 。
2. , , ,
3.単一モードのサンプルコード:
1. :
public class Center{
private Center(){}
// new
private static Center entity = new Center();
//
public static Center getEntity(){
return this.entity;
}
}
2. :
public class Center{
private Center(){}
// new
private static Center entity = null;
// null
public stastic Center getEntity(){
if(entity == null)
entity = new Center();
return this.entity;
}
}
3. :
1. new ,
2. :
1.
2. getEntity() entity null,
3. :
1. , , , , ,
2. ( ) , , , , ,
4.マルチスレッド環境での単一モードの最適化
1. synchronized
public class Center{
private Center(){}
private static Center entity = null;
public static synchronized Center getEntity(){
if(entity == null)
entity = new Center();
return entity;
}
}
2. , , , , ,
5.現在、私が開発環境で使用している単一のパターンコード
public class Center{
private Center(){}
// new
private static Center entity = null;
//
private static synchronized Center newEntity(){
if(entity == null)
entity = new Center();
return entity;
}
public static Center getEntity(){
if(entity == null)
return newEntity();
return entity;
}
}
, , 。
今回は単例モードを説明しましたが、明後日退勤したら工場モードを説明します.
もし本文にBUGが现れたら、メッセージを残してください.ありがとうございます.小生はjavaスキルを新しい高度に向上させるために努力しています.