[android]單例模式 android數據庫

單例模式也是一種比較常見的設計模式,它到底能帶給我們什麼好處呢?其實無非是三個方面的作用:

第一、控制資源的使用,通過線程同步來控制資源的併發訪問;

第二、控制實例產生的數量,達到節約資源的目的。

第三、作爲通信媒介使用,也就是數據共享,它可以在不建立直接關聯的條件下,讓多個不相關的兩個線程或者進程之間實現通信。

比如,數據庫連接池的設計一般採用單例模式,數據庫連接是一種數據庫資源。軟件系統中使用數據庫連接池,主要是節省打開或者關閉數據庫連接所引起的效率損耗,這種效率上的損耗還是非常昂貴的。當然,使用數據庫連接池還有很多其它的好處,可以屏蔽不同數據數據庫之間的差異,實現系統對數據庫的低度耦合,也可以被多個系統同時使用,具有高可複用性,還能方便對數據庫連接的管理等等。數據庫連接池屬於重量級資源,一個應用中只需要保留一份即可,既節省了資源又方便管理。所以數據庫連接池採用單例模式進行設計會是一個非常好的選擇。

在我們日常使用的在Windows中也有不少單例模式設計的組件,象常用的文件管理器。由於Windows操作系統是一個典型的多進程多線程系統,那麼在創建或者刪除某個文件的時候,就不可避免地出現多個進程或線程同時操作一個文件的現象。採用單例模式設計的文件管理器就可以完美的解決這個問題,所有的文件操作都必須通過唯一的實例進行,這樣就不會產生混亂的現象。

再比如,每臺計算機可以有若干個打印機,如果每一個進程或者線程都獨立地使用打印機資源的話,那麼我們打印出來的結果就有可能既包含這個打印任務的一部分,又包含另外一個打印任務的一部分。所以,大多數的操作系統最終爲打印任務設計了一個單例模式的假脫機服務Printer Spooler,所有的打印任務都需要通過假脫機服務進行。

實際上,配置信息類、管理類、控制類、門面類、代理類通常被設計爲單例類。像Java的Struts、Spring框架,.Net的Spring.Net框架,以及Php的Zend框架都大量使用了單例模式。


轉自:

http://blog.csdn.net/hongtashan11/article/details/6403682


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章