單例模式 梳理

2021-09-12 09:38:21 字數 1263 閱讀 3603

/**

* @author xqq

* @create 2019-03-11 17:10

* @desc 餓漢式單例

* 1、缺點浪費記憶體空間

**/public class ehssingle

private final static ehssingle e=new ehssingle();

public static ehssingle getinstance()

}//--------------------------------------

/** * @author xqq

* @create 2019-03-11 17:12

* @desc 懶漢式單例

* 1、缺點效能問題。阻塞

**/public class lazy******

public synchronized static lazy****** get()

return l;

}}/**

* @author xqq

* @create 2019-03-11 17:32

* @desc 1/效能和記憶體都優化了

**/public class lazys

public static lazy****** get()}}

return l;

}}/**

* @author xqq

* @create 2019-03-11 17:44

* @desc 類部類實現單例

* 但是還是有問題。存在。同反射也是可以例項化多個

**/public class lazysn

//懶漢式單例,加final,方法不能重寫

public static final lazysn laz()

//餓漢式單例

private static class aa

}/**

* @author xqq

* @create 2019-03-11 17:56

* @desc 這樣破壞了單例

**/public class lazyproxy

}-----------------兩個例項

top.xiequanquan.demo.basic.lazysn@1540e19d

top.xiequanquan.demo.basic.lazysn@677327b6

當然以上的都不能保證單例。比如反射,序列化 等可以破解

設計模式梳理 單例模式

一概念介紹 所謂單例模式,簡單來說,就是在整個應用中保證只有乙個類的例項存在,而且自行例項化並向整個系統提供這個例項。單例物件通常作為程式中的存放配置資訊的載體,因為它能保證其他物件讀到一致的資訊。例如在某個伺服器程式中,該伺服器的配置資訊可能存放在資料庫或 檔案中,這些配置資料由某個單例物件統一讀...

單例模式 單例模式

餓漢式 急切例項化 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...