單例模式是比較常用的設計模式,他的主要功能是該類只能產生一個對象,即每次使用該類的對象使用的是同一個對象。這個對象由該類自己產生,同時由該類向系統提供。
下面看他的一種具體實現
package single;
public class Danli {
private static Danli dan = null;
private Danli(){
//可以對初始對象進行一些相應操作
}
public static Danli getInstance(){
if(dan == null){
dan = new Danli();
}
return dan;
}
}
在這個類中創建一個該類的靜態對象dan,然後將他的構造函數私有化,經過構造函數私有化後,在外部不能通過new關鍵字創建一個新的對象。然後創建一個靜態方法getInstance(),該方法是用於向外部提供該單例對象,然後在外部使用該方法就能獲得該單例對象。
下面看一下測試代碼:
@Test
public void doe(){
Danli d2 = Danli.getInstance();
Danli d3 = Danli.getInstance();
System.out.println(d2==d3);
}
這裏使用JUnit進行測試,在該測試方法中通過getInstance方法獲取兩個Danli對象,然後判斷他們是否是同一個對象。最終輸出結果爲true。