單例模式及其應用場景

單例模式(Singleton)也叫單態(tài)模式履婉,是設計模式中最為簡單的一種模式舌菜,甚至有些模式大師都不稱其為模式慢味,稱其為一種實現(xiàn)技巧纷妆,因為設計模式講究對象之間的關(guān)系的抽象盔几,而單例模式只有自己一個對象,也因此有些設計大師并把把其稱為設計模式之一掩幢。

這里又不具體講如何實現(xiàn)單例模式和介紹其原理(因為這方便的已經(jīng)有太多的好文章介紹了)逊拍,如果對單例模式不了解的可以先看下:http://terrylee.cnblogs.com/archive/2005/12/09/293509.html。當然也可以自己搜索际邻。

好多沒怎么使用過的人可能會想芯丧,單例模式感覺不怎么用到,實際的應用場景有哪些呢世曾?以下缨恒,我將列出一些就在咱們周邊和很有意義的單例應用場景。

1. Windows的Task Manager(任務管理器)就是很典型的單例模式(這個很熟悉吧)轮听,想想看骗露,是不是呢,你能打開兩個windows task manager嗎血巍? 不信你自己試試看哦~?

2. windows的Recycle Bin(回收站)也是典型的單例應用萧锉。在整個系統(tǒng)運行過程中,回收站一直維護著僅有的一個實例述寡。

3. 網(wǎng)站的計數(shù)器柿隙,一般也是采用單例模式實現(xiàn),否則難以同步鲫凶。

4. 應用程序的日志應用禀崖,一般都何用單例模式實現(xiàn),這一般是由于共享的日志文件一直處于打開狀態(tài)掀序,因為只能有一個實例去操作帆焕,否則內(nèi)容不好追加。

5. Web應用的配置對象的讀取,一般也應用單例模式叶雹,這個是由于配置文件是共享的資源财饥。

6.數(shù)據(jù)庫連接池的設計一般也是采用單例模式,因為數(shù)據(jù)庫連接是一種數(shù)據(jù)庫資源折晦。數(shù)據(jù)庫軟件系統(tǒng)中使用數(shù)據(jù)庫連接池钥星,主要是節(jié)省打開或者關(guān)閉數(shù)據(jù)庫連接所引起的效率損耗,這種效率上的損耗還是非常昂貴的满着,因為何用單例模式來維護谦炒,就可以大大降低這種損耗。

7. 多線程的線程池的設計一般也是采用單例模式风喇,這是由于線程池要方便對池中的線程進行控制宁改。

8. 操作系統(tǒng)的文件系統(tǒng),也是大的單例模式實現(xiàn)的具體例子魂莫,一個操作系統(tǒng)只能有一個文件系統(tǒng)还蹲。

9.HttpApplication 也是單位例的典型應用。熟悉ASP.Net(IIS)的整個請求生命周期的人應該知道HttpApplication也是單例模式耙考,所有的HttpModule都共享一個HttpApplication實例.

總結(jié)以上谜喊,不難看出:

  單例模式應用的場景一般發(fā)現(xiàn)在以下條件下:

  (1)資源共享的情況下倦始,避免由于資源操作時導致的性能或損耗等斗遏。如上述中的日志文件,應用配置鞋邑。

 ∷写巍(2)控制資源的情況下,方便資源之間的互相通信炫狱。如線程池等藻懒。

大家可以追加其他常見的應用場景……

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市视译,隨后出現(xiàn)的幾起案子嬉荆,更是在濱河造成了極大的恐慌,老刑警劉巖酷含,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鄙早,死亡現(xiàn)場離奇詭異,居然都是意外死亡椅亚,警方通過查閱死者的電腦和手機限番,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呀舔,“玉大人弥虐,你說我怎么就攤上這事扩灯。” “怎么了霜瘪?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵珠插,是天一觀的道長。 經(jīng)常有香客問我颖对,道長捻撑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任缤底,我火速辦了婚禮顾患,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘个唧。我一直安慰自己江解,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布坑鱼。 她就那樣靜靜地躺著膘流,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲁沥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天耕魄,我揣著相機與錄音画恰,去河邊找鬼。 笑死吸奴,一個胖子當著我的面吹牛允扇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播则奥,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼考润,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读处?” 一聲冷哼從身側(cè)響起糊治,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎罚舱,沒想到半個月后井辜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡管闷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年粥脚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片包个。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刷允,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情树灶,我是刑警寧澤纤怒,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站破托,受9級特大地震影響肪跋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜土砂,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一州既、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萝映,春花似錦吴叶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奥秆,卻和暖如春逊彭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背构订。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工侮叮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悼瘾。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓囊榜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亥宿。 傳聞我的和親對象是個殘疾皇子卸勺,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,101評論 1 32
  • 單例模式(Singleton)也叫單態(tài)模式,是設計模式中最為簡單的一種模式烫扼,甚至有些模式大師都不稱其為模式曙求,稱其為...
    舒小賤閱讀 29,744評論 0 10
  • JAVA設計模式之單例模式 十種常用的設計模式 概念: java中單例模式是一種常見的設計模式,單例模式的寫法...
    飛翔的豬寶寶閱讀 360評論 0 0
  • 目錄 1材蛛、設計模式簡介 2圆到、什么是單例模式 3、單例模式應用場合 4卑吭、單例模式作用 5芽淡、單例模式3個要點/要素 6...
    greensure閱讀 1,319評論 1 10
  • 其實挣菲,要想成為有錢人其實很簡單:當你身邊都是有錢人的時候富稻,你也一定會成為有錢人。 美國前總統(tǒng)克林頓原來是吹薩卡斯...
    她極美的靈魂閱讀 2,267評論 0 2