簡單幾個例子,教你用單例模式

2021-06-26 22:14:47 字數 1523 閱讀 1981

單例模式:

簡單理解:此類使用單例,全域性都可呼叫此類

官方解釋:單例模式確保乙個類,只有乙個例項,自行提供例項並向整個系統提供這個例項、

特點 :1.乙個類只能有乙個例項

2.自己建立這個例項

3.整個系統都要使用這個例項

拿幾個例子解釋吧:

windows裡面的 **站 整個系統都使用這個唯一的例項,而且**站自定提供自己的例項。

看看 我寫的這個單例模式吧

publicsynchronizedstatic coolweather getinstance(context context)

return cooweatherdb; }

回到正題:

單例有兩種經常用:

1,餓漢式單例類

publicclasssingleton

//在自己內部定義自己乙個例項,是不是很奇怪?

//注意這是private 只供內部呼叫

privatestaticsingleton instance =newsingleton();

//這裡提供了乙個供外部訪問本class的靜態方法,可以直接訪問

publicstaticsingleton getinstance()

}

2,懶漢式單例類

publicclasssingleton

}

第二中形式是lazy initialization,也就是說第一次呼叫時初始singleton,以後就不用再生成了。

注意到lazy initialization形式中的synchronized,這個synchronized很重要,如果沒有synchronized,那麼使用getinstance()是有可能得到多個singleton例項。

一般來說第一種比較安全

public class titlemanager

public static titlemanager getinstance()

呼叫的時候  直接 方法名.getinstance 即可

titlemanager manager = titlemanager.getinstance();

手把手教你用CAB發布OCX的簡單辦法

cab是一種檔案壓縮格式,把ocx檔案 activex外掛程式 壓縮成cab檔案是為了發布它,這種發布方式給人感覺 瀏覽器會自動安裝該外掛程式 很多朋友鍾情於此。目前流行很多壓縮工具,但winrar這類工具生成的cab檔案瀏覽器無法識別。經過試用,發現用windows系統檔案cabarc來製作cab...

手把手教你用CAB發布OCX的簡單辦法

cab是一種檔案壓縮格式,把ocx檔案 activex外掛程式 壓縮成cab檔案是為了發布它,這種發布方式給人感覺 瀏覽器會自動安裝該外掛程式 很多朋友鍾情於此。目前流行很多壓縮工具,但winrar這類工具生成的cab檔案瀏覽器無法識別。經過試用,發現用windows系統檔案cabarc來製作cab...

手把手教你用CAB發布OCX的簡單辦法

cab是一種檔案壓縮格式,把ocx檔案 activex外掛程式 壓縮成cab檔案是為了發布它,這種發布方式給人感覺 瀏覽器會自動安裝該外掛程式 很多朋友鍾情於此。目前流行很多壓縮工具,但winrar這類工具生成的cab檔案瀏覽器無法識別。經過試用,發現用windows系統檔案cabarc來製作cab...