1. 程式人生 > >常見的七種單例模式寫法

常見的七種單例模式寫法

public enum Singleton {
    instance;
    public void operate(){
System.out.println("處理中。。。。");
    }
}


驗證是否是同一物件:
 Singleton singletest1 =Singleton.instance;
 Singleton singletest2 =Singleton.instance;

System.out.println(singletest1.equals(singletest2))
容器實現單例模式
public class Connection {
/**
     * 只能有三個物件
*/ private static int max=3; /** * 把所有的物件先存在一個map中 */ private static Map<Integer,Connection> map=new HashMap<Integer,Connection>(); private static int key=1;  
  private Connection() {
    }
    public static Connection getConnection(){
Connection instance=map.get(key
); if(instance==null){ instance=new Connection(); map.put(key,instance); } key++; if(key>max){ key=1; } return instance;
}
}

用Connection 將多種的單例類統一管理,在使用時根據key獲取物件對應型別的物件。這種方式使得我們可以管理多種型別的單例,並且在使用時可以通過統一的介面進行獲取操作,降低了使用者的使用成本,也對使用者隱藏了具體實現,降低了耦合度