2013-10-22 68 views
1

我在java源代碼或其他標準庫中搜索單例設計模式實現(雙重檢查鎖定,枚舉等)的示例。我想檢查常用庫所採用的方法/方法。請推薦一些實現單例設計模式的類/庫。標準庫中單例設計模式實現的示例

+1

單身人士是一種反模式,旨在明確分享可變的全局狀態。如果您在標準庫中找到單身人士,那可能是一個錯誤或舊代碼。如今使用依賴注入和IoC(DiC)容器在不同代碼區域之間共享依賴關係的更好方法更爲普遍。單身人士很少有實際的用例。相關http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons –

回答

1

//在java中實現單例類的最佳方法
package com.vsspl.test1;

class STest { 

    private static STest ob= null; 
    private STest(){ 
     System.out.println("private constructor"); 
    } 

    public static STest create(){ 

     if(ob==null) 
      ob = new STest(); 
     return ob; 
    } 

    public Object clone(){ 
     STest obb = create(); 
     return obb; 
    } 
} 

public class SingletonTest { 
    public static void main(String[] args) { 
     STest ob1 = STest.create(); 
     STest ob2 = STest.create(); 
     STest ob3 = STest.create(); 

     System.out.println("obj1 " + ob1.hashCode()); 
     System.out.println("obj2 " + ob2.hashCode()); 
     System.out.println("obj3 " + ob3.hashCode()); 


     STest ob4 = (STest) ob3.clone(); 
     STest ob5 = (STest) ob2.clone(); 
     System.out.println("obj4 " + ob4.hashCode()); 
     System.out.println("obj5 " + ob5.hashCode()); 

    } 
}