設計模式之單例模式(Singleton)

2021-06-21 21:00:38 字數 1114 閱讀 9858

單例模式通常用於整個應用只存在乙個類的例項的場景。單例模式分為懶漢式與餓漢式,實現的方式可以通過普通的class,也可以通過enum實現。

1、餓漢式:

對於應用啟動後的訪問響應時間要求高的應用可以嘗試使用,效能消耗主要在建立物件上。

/**

* 單例模式,餓漢式。

* @author jim

* */

/*** 載入類時進行物件建立。

*//**

* 返回例項。

*/return instance;

}}

2、懶漢式

側重於按需建立,避免不必要的例項建立與維護。

/**

* 單例模式,支援物件序列化,懶漢式。

* @author jim

* */

/*** uid

*/private static final long serialversionuid = 1420731236246142089l;

/*** 持有例項。

*//**

* 獲取例項,當例項不存在時建立。

* 採用double-check進行例項建立。

*/if (instance == null)

return instance; }

/*** 例項化單例項成員變數。

*/private synchronized static void initinstance() }

/***

* 反序列化處理,確保類的例項只有乙個。

* @return 物件例項

*/private object readresolve()

/** 私有構造器,不允許外部例項化 */

}}

另外一種通過enum實現單例,此種模式由enum自動保證序列化、反序列時單例項的存在。

/**

* 通過enum實現單例模式,其自動處理了反序列化單例的問題。

* @author jim

* */

public enum enumsingleton

}

Java設計模式 單例模式(single)

目錄目的 應用例項 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。菜鳥教程 乙個國家有乙個首都 windows 是多程序多執行緒的,在操作乙個檔案的時候,就不可避免地出現多個程序或執行緒同時操作乙個檔案的現象,所以所有檔案的處理必須通過唯一的例項來進行。第一種 package com.ga...

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...