單例模式很簡單,用到的也很多,即乙個類通過定義乙個私有建構函式,是其它類不能new這個類的例項,所有類只能獲取這個類自己new出的唯一乙個例項。英文釋義:eneure a class has only one instance,and provide a global point of access to it.
單例模式的實現主要由五種方式:餓漢式、懶漢式、雙重鎖方式、靜態內部類,列舉法。
示例:1、餓漢式:
public class singleexample
return singleexample;
3、雙重校驗鎖方式(懶漢模式公升級版):
public class singleexample}}
return singleexample;
volatile關鍵字的作用是禁止編譯器指令重排序,避免先指向記憶體空間,後初始化,導致下乙個執行緒直接引用未初始化的instance報錯。
4、靜態內部類
public class singleexample
private singleexample (){}
public static final singleexample getinstance()
5、列舉法
不僅超級簡單,而且保證了現場安全。這裡引用一下,此方法無償提供了序列化機制,絕對防止多次例項化,及時面對複雜的序列化或者反射攻擊。單元素列舉型別已經成為實現singleton的最佳方法。
public enum singleton */
}
單例模式 單例模式
餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...
單例 單例模式
簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...
單例模式 懶漢式單例模式
單例模式有餓漢時模式和懶漢式 單例模式也就是說同一類只返回乙個物件供外部類使用 懶漢式即延遲初始化單例。在多執行緒環境下,簡單的懶漢式會有執行緒安全。懶漢式單例模式解決線性安全問題如下 1 使用雙重檢查鎖機制解決執行緒安全問題。2 單例模式還有更好的解決方案,即使用靜態類方式。懶漢式單例模式典型 p...