設計模式筆記之三 單例模式

2022-07-04 02:36:11 字數 1542 閱讀 6798

單例模式

單例模式可以說是最簡單的設計模式了,當我們需要保持狀態一致,或者是縮減資源開銷的時候我們都會用到單例模式。

就如我們的實驗室有三個老總,以前富裕的時候每個老總都有乙個女秘書

class

nvmishu

public

class

singleton

}

但是最近市場不景氣,我們的人+衣服套件不好賣了,老總們只能共用一位秘書了,所以辭退兩個秘書後,剩下的乙個秘書只能改變工作機制才能滿足三個老總的需求(請宅男程式設計師們不要腦補,我是乙個正直的程式猿),

class

nvmishu

public

static

nvmishu getinstance()

}public

class

singleton

}

但是當我們的經濟更加的拮据的時候,有人提出當老總們都不需要秘書的時候,我們其實不需要秘書啊,只有當有乙個老總有需求的時候,招乙個秘書好了,於是秘書處又做了改變:

class

nvmishu

public

static

nvmishu getinstance()

return

mishu;}}

如此這般了以後,很久的時間工作得都很順利,老總們都能得到秘書很好的服務。

直到有一次,a老總需要秘書的服務,當時前乙個秘書因為長時間得不到老總的招喚已經辭退了,所以秘書處的人就去招人了,

但是這時候b老總也需要秘書的服務,秘書處還沒有秘書所以又去招人了,這下一下子招回來兩個秘書,問題就出現了,所以秘書處只能再次改變工作機制

class

nvmishu

public

synchronized

static

nvmishu getinstance()

return

mishu;}}

這樣當多個老總同時招呼秘書的時候,就得排隊等上乙個老總用完才輪到下乙個老總用。這又導致了老總們等待的時間變長,老總的意思是當沒有秘書的時候我們排隊等等也行,但是如果有秘書了,我們就不需要排隊了,可以一起用啊(我真不想說的這麼不符合我的風格,但是事實就是這樣啊)。 秘書處只能又做了一些改變。

class

nvmishu

public

static

nvmishu getinstance() }}

return

mishu;}}

以下是完整的乙個單例模式,

view code

class

nvmishu

public

static

nvmishu getinstance() }}

return

mishu;

}}public

class

singleton

}

因為單例模式比較簡單,以上只為搏君一笑罷了。

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

單例模式看起來也蠻簡單的,就是在系統中只允許產生這個類的乙個例項,既然這麼簡單,就直接貼 了。更詳細的內容及說明可以參考原作者部落格 cbf4life.cnblogs.com。3.1.解釋 main 大臣 cemperor,需要單例的類 說明 很多大臣拜見的皇帝,只有乙個。體現在物件導向方面,cem...

設計模式三 單例模式

單例模式也是建立型模式的一種,也是23種設計模式中比較簡單的一種。見名思意,在整個軟體系統中,只有某個型別的乙個物件,並且訪問他的地方也只有乙個,也就是只有乙個全域性物件訪問點,這個例項或物件被所有是應用程式所共享 很多可以使用到這樣的功能模組 比如資料庫連線池物件 印表機物件,因為整個系統中,資料...

設計模式 三 單例模式

package zzq.designpatterns.creativepattern import lombok.data 單例 singleton 模式的定義 指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。例如,windows 中只能開啟乙個任務管理器,這樣可以避免因開啟多個任務管理器...