国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設計模式——經(jīng)典單例

這篇具有很好參考價值的文章主要介紹了設計模式——經(jīng)典單例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

0、核心要素

// 構(gòu)造、析構(gòu)函數(shù)私有化(一個進程只允許一個對象存在)
// 對象私有化、靜態(tài)化(因為接口靜態(tài)函數(shù))
// 對象調(diào)用接口靜態(tài)化(因為靜態(tài)函數(shù)脫離了類對象,可以直接調(diào)用)

一、懶漢

唯一的對象在使用時才進行初始化。存在多線程問題。

#include <iostream>

using namespace std;

class singleMode {

public:
    static singleMode* getInstance() {

        if (obj==nullptr) {
            obj = new singleMode();
        }

        return obj;
    }

    void printMsg() {
        cout << "print success." << endl;
    }

private:
    static singleMode* obj;
    singleMode() {
        cout << "instance create." << endl;
    }
    ~singleMode() {
        cout << "instance release." << endl;
    }
};

singleMode* singleMode::obj = nullptr;
// singleMode* singleMode::obj = new singleMode();

int main()
{
    {
        singleMode::getInstance()->printMsg();
    }

    return 0;
}

二、餓漢

唯一的對象在定義時就完成初始化。文章來源地址http://www.zghlxwxcb.cn/news/detail-653600.html

#include <iostream>

using namespace std;

class singleMode {

public:
    static singleMode* getInstance() {

     /*   if (obj==nullptr) {
            obj = new singleMode();
        }
     */
        return obj;
    }

    void printMsg() {
        cout << "print success." << endl;
    }

private:
    static singleMode* obj;
    singleMode() {
        cout << "instance create." << endl;
    }
    ~singleMode() {
        cout << "instance release." << endl;
    }
};

// singleMode* singleMode::obj = nullptr;
singleMode* singleMode::obj = new singleMode();

int main()
{
    {
        singleMode::getInstance()->printMsg();
    }

    return 0;
}

到了這里,關(guān)于設計模式——經(jīng)典單例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 【設計模式】單例模式|最常用的設計模式

    【設計模式】單例模式|最常用的設計模式

    單例模式是最常用的設計模式之一,雖然簡單,但是還是有一些小坑點需要注意。本文介紹單例模式并使用go語言實現(xiàn)一遍單例模式。 單例模式保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。 使用場景: 當類只能有一個實例而且可以從一個公開的眾所周知的訪

    2024年04月29日
    瀏覽(31)
  • 設計模式之單例設計模式

    就是一個類只允許創(chuàng)建一個對象,那么我們稱該類為單例類,這種設計模式我們稱為單例模式。 資源共享:有些類擁有共享的資源,例如數(shù)據(jù)庫連接池、線程池、緩存等。使用單例模式確保只有一個實例,避免資源浪費和競爭條件。 線程安全:單例模式可以用來保證多線程

    2024年02月07日
    瀏覽(30)
  • 設計模式-單例模式

    ? ? ? 單例模式(Singleton Pattern)是設計模式中最簡單且最常用的一種創(chuàng)建型模式,其目的是保證一個類在整個系統(tǒng)中只存在一個實例,并提供全局訪問點來獲取這個唯一實例。這種模式主要適用于那些需要頻繁實例化然后又希望避免因為多次實例化而消耗過多資源或產(chǎn)生副

    2024年01月17日
    瀏覽(26)
  • 設計模式——單例模式

    設計模式——單例模式

    確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。 即保證一個類只有一個實例,并且提供一個全局訪問點 優(yōu)點 單例對象在內(nèi)存中只有一個實例,減少了內(nèi)存的開支。尤其對于一個頻繁創(chuàng)建、銷毀的對象時,單例模式的優(yōu)勢就更明顯。 減少系統(tǒng)的性能

    2024年02月16日
    瀏覽(34)
  • 【設計模式-單例模式】

    【設計模式-單例模式】

    在一個項目中的全局范圍內(nèi), 一個類 有且僅有一個實例對象 。這個唯一的實例對象給其他模塊提供數(shù)據(jù)的 全局訪問 。這樣的模式就叫 單例模式 。 單例模式的典型例子就是任務隊列。 首先, 考慮單例模式的要求為有且僅有一個實例對象。那么就先從構(gòu)造函數(shù)入手。類的構(gòu)

    2024年02月13日
    瀏覽(32)
  • 設計模式(單例模式)

    ????????保證指定的類只有一個實例,不能創(chuàng)建出其他的實例 ? ? ? ? ? ? ? ? 1.1 代碼展示 ? ? ? ? ? ? ? ? 1.2 Singleton類中instance對象的創(chuàng)建時機 ????????????????Singleton類中instance對象的創(chuàng)建時機:在Singleton類被jvm加載的時候創(chuàng)建,Singleton類會在第一次使用的時

    2024年02月15日
    瀏覽(32)
  • 設計模式 ~ 單例模式

    單例模式:指在確保一個類只有一個實例,創(chuàng)建之后緩存以便繼續(xù)使用,并提供一個全局訪問點來訪問該實例; 前端對于單例模式不常用,但對于單例的思想無處不在; 如:彈窗、遮罩層、登錄框、vuex redux 中的 store; 閉包: 模塊化:

    2024年02月16日
    瀏覽(39)
  • 設計模式篇---單例模式

    設計模式篇---單例模式

    單例模式是結(jié)構(gòu)最簡單的設計模式,通過單例模式可以保證在整個系統(tǒng)中的一個類只有一個實例,從而節(jié)約系統(tǒng)資源。舉個例子,比如windows電腦下的任務管理器只能打開一個,這個就是單例模式,如果不這樣做,則會彈出多個窗口,但這些窗口顯示的內(nèi)容完全一樣,浪費了資

    2024年02月10日
    瀏覽(27)
  • 設計模式 : 單例模式筆記

    設計模式 : 單例模式筆記

    一個類 只能創(chuàng)建一個對象 ,這樣的類的設計模式就稱為單例模式,該模式保證 系統(tǒng)中 該類 只能有一個實例 (并且 父子進程共享 ),一個很典型的單例類就是C++STL的內(nèi)存池 C++單例模式的基本設計思路: 私有化 構(gòu)造函數(shù) ,刪除默認的 拷貝構(gòu)造函數(shù) 和 賦值運算符重載 防止對象被直

    2024年02月12日
    瀏覽(29)
  • 設計模式_單例模式

    保證該類只有一個實例( static私有變量 ),并提供一個訪問的它的全部訪問點( getInstance() 方法 ),該單例可以被所有程序模塊共享. 1)此類不可被復制. 2)此類不可被公開構(gòu)造. 也就是說,在c++中,它的 構(gòu)造函數(shù),拷貝構(gòu)造函數(shù),賦值函數(shù) 不能被公開調(diào)用. 個人理解,“懶漢式”,那一定很

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包