紼嬪簭鍒楄〃
鍚嶇О
璇存槑
Singleton
鍙湁涓€涓璞″疄渚嬬殑綾?/p>
Main
嫻嬭瘯鐢ㄧ殑綾?/p>
[UML鍥綸
[紺轟緥浠g爜鍜岀被鐨勮癄閲奭
1 package singleton;
2
3 public class Singleton {
4 private static Singleton singleton = new Singleton();
5
6 private Singleton() {
7 System.out.println( " Create instance... " );
8 }
9
10 public static Singleton getInstance() {
11 return singleton;
12 }
13 }
14
Singleton Class:
1.璇ョ被鍙兘浜х敓涓€涓璞″疄渚?br />
2.鎶婅綾葷殑鐨剆ingleton灞炴€ц瀹氫負(fù)static鍐嶄互Singleton;綾葷殑瀵硅薄瀹炰緥榪涜鍒濆鍖?榪欎釜鍒濆鍖栫殑榪囩▼浠呭姞杞絊ington綾葷殑鏃跺€欒皟鐢ㄤ竴嬈?(Line4)
3.鎶奡ingleton 綾葷殑鏋勯€犲嚱鏁伴檺瀹氫負(fù)private,鐩殑鏄負(fù)浜嗛槻姝粠闈濻ingleton綾?鍏朵粬綾?璋冪敤鏋勯€犲嚱鏁版潵浜х敓瀹炰緥,濡傛灉閫氳繃new鏂瑰紡鏉ヤ駭鐢烻ingleton瀹炰緥,浼?xì)鍑虹幇缂栬瘧閿欒?榪欐牱鍋氭槸涓轟簡淇濋櫓宸辮.(Line6)
4.瑕佸緱鍒癝ingleton瀹炰緥鐨勫敮涓€鏂規(guī)硶灝辨槸璋冪敤綾婚潤鎬佹柟娉昰etInstance().榪欎釜鍚嶅瓧鍙互闅忎究鍙?鍙鏂逛究鐞嗚В灝辮.(Line 10)
1 package singleton;
2
3 public class Main {
4
5 public static void main(String[] args) {
6 System.out.println( " Start " );
7 Singleton obj1 = Singleton.getInstance();
8 Singleton obj2 = Singleton.getInstance();
9 if (obj1 == obj2){
10 System.out.println( " obj1鍜宱bj2鏄悓涓€鍊嬪皪璞″渚?/span>" );
11 } else {
12 System.out.println( " obj1鍜宱bj2涓嶆槸鍚屼竴鍊嬪皪璞″渚?/span>" );
13 }
14 System.out.println( " End " );
15 }
16 }
17
Main Class
1.璇ョ被鏄祴璇曠▼搴?
2.紼嬪簭閫氳繃getInstance()鏂瑰紡浜х敓涓や釜obj1鍜宱bj2瀹炰緥.(Line 7,Line 8)
3.閫氳繃ojb1= =ojb2琛ㄨ揪寮忔潵紜畾涓や釜瀵硅薄鏄惁鐩稿悓,鍒ゅ畾鏄惁浜х敓浜哠ingleton鐨勭浜屼釜紺轟緥.(Line9-12 )
紺轟緥紼嬪簭鐨勬墽琛岀粨鏋?/strong>
Start
Create instance...
obj1鍜宱bj2鏄悓涓€鍊嬪皪璞″渚?br />
End