www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 21ic電子網(wǎng)
[導(dǎo)讀]單例模式看起來簡單,但是需要考慮的問題卻很多。保證一個類僅有一個實例,并提供一個該實例的全局訪問點?!对O(shè)計模式》在軟件系統(tǒng)中,經(jīng)常有這樣一些特殊的類,必須保證他們在系統(tǒng)中只存在一個實例,才能確保它們的邏輯正確性、以及良好的效率。所以得考慮如何繞過常規(guī)的構(gòu)造器(不允許使用者ne...

單例模式很簡單?但你真能寫對嗎?


單例模式看起來簡單,但是需要考慮的問題卻很多。
保證一個類僅有一個實例,并提供一個該實例的全局訪問點?!对O(shè)計模式》
在軟件系統(tǒng)中,經(jīng)常有這樣一些特殊的類,必須保證他們在系統(tǒng)中只存在一個實例,才能確保它們的邏輯正確性、以及良好的效率。所以得考慮如何繞過常規(guī)的構(gòu)造器(不允許使用者new出一個對象),提供一種機制來保證一個類只有一個實例。應(yīng)用場景:
  • Windows的Task Manager(任務(wù)管理器)就是很典型的單例模式,你不能同時打開兩個任務(wù)管理器。Windows的回收站也是同理。
  • 應(yīng)用程序的日志應(yīng)用,一般都可以用單例模式實現(xiàn),只能有一個實例去操作文件。
  • 讀取配置文件,讀取的配置項是公有的,一個地方讀取了所有地方都能用,沒有必要所有的地方都能讀取一遍配置。
  • 數(shù)據(jù)庫連接池,多線程的線程池。

實現(xiàn)

單例模式的實現(xiàn)有很多中,我們來看看一些常見的實現(xiàn)。某些實現(xiàn)可能是適合部分場景,但并不是說不能用。

實現(xiàn)一[線程不安全版本]

class?Singleton{
public:
????static?Singleton*?getInstance(){
????????//?先檢查對象是否存在
????????if?(m_instance?==?nullptr)?{
????????????m_instance?=?new?Singleton();
????????}
????????return?m_instance;
????}
private:
????Singleton();?//私有構(gòu)造函數(shù),不允許使用者自己生成對象
????Singleton(const?Singleton
21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉