23種設計模式之單例模式 Singleton

2021-09-11 22:05:03 字數 873 閱讀 5139

singleton是軟體開發中最常用的的設計模式之一,它有三個要點:

只能有乙個例項(構造器私有化);

在內部自行建立該例項(用乙個靜態變數來儲存唯一的例項);

向外部提供獲得例項的方式(1. 直接暴露; 2. 用靜態變數的get方法獲取;)

兩種寫法

public class singleton 

}

public class singleton 

private singleton()

}

直接用類名點方法,在載入類的時候例項就已經被建立,不管要要不要都會被建立。

public class singleton 

public static singleton getinstance()

return instance;

}}

public class singleton 

public static singleton getinstance()

}return instance;

}}

使用同步來實現執行緒安全(適用於多執行緒),我們還可以用內部類的方式來實現

public class singleton 

private static class inner

public static singleton getinstance()

}

靜態內部類不會隨著外部類載入種初始化而初始化,當呼叫時才載入(適用於多執行緒)。

23種設計模式之單例模式

我們也經常遇到類似的情況,為了節約系統資源,有時需要確保系統中某個類只有唯一乙個例項,當這個唯一例項建立成功之後,我們無法再建立乙個同型別的其他物件,所有的操作都只能基於這個唯一例項。為了確保物件的唯一性,我們可以通過單例模式來實現,這就是單例模式的動機所在。定義 單例模式 singleton pa...

23種設計模式之 單例模式

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。讓類自身負責儲存它的唯一例項,這個類可以保證沒有其他例項可以被建立,並且它可以提供乙個訪問 獲取 該例項的方法。單例類應滿足以下特點 單例類 singleton 自己例項化自己的唯一例項,並提供訪問該唯一例項的方法。public class s...

23種設計模式之單例模式

單例模式 確保乙個類最多只有乙個例項,並提供乙個全域性訪問點 普通單例模式示例 有問題 public class singleton public static singleton getinstance return uniqueinstance 示例singleton public class ...