? ? ? 1. 單例模式,也加單件模式單件模式。 Java中單例模式定義:“一個(gè)類有且僅有一個(gè)實(shí)例,并且自行實(shí)例化向整個(gè)系統(tǒng)提供。” 簡(jiǎn)單來說,就是要保證在整個(gè)應(yīng)用程序的生命周期中,任意時(shí)刻最多存在一個(gè)類實(shí)例(不存在,空閑也可以),并提供一個(gè)全局訪問點(diǎn)。? ??
? ? ? ?2. 舉例來說,在公司,你的PC機(jī)可能同時(shí)連接了幾臺(tái)不同的打印機(jī),現(xiàn)在你要打印一個(gè)文件,但是該P(yáng)C機(jī)上的打印程序僅僅有一個(gè),也就是文檔的打印程序?qū)嵗荒芡瑫r(shí)傳送到兩臺(tái)打印機(jī)。? 可以使用單例模式來實(shí)現(xiàn)打印機(jī)程序,保證不會(huì)因?yàn)橥瑫r(shí)存在兩個(gè)打印程序?qū)嵗齻魉偷讲煌拇蛴C(jī)。
? ? ? 3. 單例模式的實(shí)現(xiàn)原理: ? 原理在于構(gòu)造函數(shù)是私有化的,你不能去new它。 ?單例類中已經(jīng)實(shí)例化好一個(gè)了,且是static的,并提供一個(gè)獲取該實(shí)例的方法。客戶端只能通過這個(gè)方法獲取已經(jīng)實(shí)例化好的,從而保證了只有一個(gè)實(shí)例的存在。
? ? ? 4. ?兩種實(shí)現(xiàn): ? 懶漢式和 餓漢式
1) ? ? 懶漢式
2) ? ?惡漢式