1
我在java源代碼或其他標準庫中搜索單例設計模式實現(雙重檢查鎖定,枚舉等)的示例。我想檢查常用庫所採用的方法/方法。請推薦一些實現單例設計模式的類/庫。標準庫中單例設計模式實現的示例
我在java源代碼或其他標準庫中搜索單例設計模式實現(雙重檢查鎖定,枚舉等)的示例。我想檢查常用庫所採用的方法/方法。請推薦一些實現單例設計模式的類/庫。標準庫中單例設計模式實現的示例
//在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());
}
}
單身人士是一種反模式,旨在明確分享可變的全局狀態。如果您在標準庫中找到單身人士,那可能是一個錯誤或舊代碼。如今使用依賴注入和IoC(DiC)容器在不同代碼區域之間共享依賴關係的更好方法更爲普遍。單身人士很少有實際的用例。相關http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons –