最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談C++ 設(shè)計模式的基本原則

 更新時間:2021年09月14日 10:46:36   作者:小羊的Debug  
這篇文章主要介紹了++ 設(shè)計模式的基本原則,主要的目標是實現(xiàn)最終目的,高內(nèi)聚,低耦合,開放封閉原則類的改動是通過增加代碼進行的,感興趣的小伙伴可參考下面文章的具體內(nèi)容

先上銀行類案例代碼如下:

#include<iostream> 
using namespace std; 
class BankWorker 
{ 
public: 
    void save() 
    { 
        cout << "存款" << endl; 
    } 
    void moveM() 
    { 
        cout << "取款" << endl; 
 
    } 
    void jiaofei() 
    { 
        cout << "繳費" << endl; 
    } 
 
}; 
class AbBankWorker 
{ 
public: 
    virtual void dothing() = 0; 
}; 
 
class SaveBanker :public AbBankWorker 
{ 
public: 
    virtual  void dothing() 
    { 
        cout << "存款" << endl; 
    } 
}; 
class MoveBanker :public AbBankWorker 
{ 
public: 
    virtual  void dothing() 
    { 
        cout << "取款" << endl; 
    } 
}; 
class SaveBanker :public AbBankWorker 
{ 
public: 
    virtual  void dothing() 
    { 
        cout << "繳費款" << endl; 
    } 
}; 
void main11() 
{ 
    BankWorker*bw = new BankWorker; 
    bw->jiaofei(); 
    bw->moveM(); 
    bw->save(); 
    cout << "hello..." << endl; 
    system("pause"); 
    return; 
     
} 
void main22() 
{ 
    AbBankWorker*bw = NULL; 
        bw=new MoveBanker; 
        bw->dothing(); 
        delete bw; 
    return; 
 
} 
void main() 
{ 
 
    main22(); 
     
    system("pause"); 
    return; 
} 

單一職責原則類的職責要單一,對外只提供一種功能,而引起內(nèi)變化的原因都應(yīng)該只有一個,就是依賴倒置原則依賴于抽象接口,不要依賴具體的實現(xiàn)類,也就是針對接口編程

#include<iostream> 
using namespace std; 
class HardDisk 
{public: 
    virtual void work(); 
}; 
 
class Memory 
{ 
public: 
    virtual void work(); 
}; 
class Cpu 
{ 
public: 
    virtual void work(); 
}; 
class ComPuter 
{ 
public: 
    ComPuter(HardDisk*m_handdisk, Memory*m_memory, Cpu*m_cpu) 
    { 
        m_handdisk = handdisk; 
        m_memory = memory; 
        m_cpu = cpu; 
    } 
public: 
    void work() 
    { 
        m_handdisk->work(); 
        m_memory->work(); 
        m_cpu->work(); 
    } 
private: 
    HardDisk*m_handdisk; 
        Memory*m_memory; 
        Cpu*m_cpu; 
}; 
 
class InterCpu :public Cpu 
{ 
public: 
    void work() 
    { 
        cout << "我是因特爾廠家" << endl; 
    } 
}; 
class XSDisk :public HardDisk 
{ 
public: 
    void work() 
    { 
        cout << "我是西數(shù)硬盤廠家" << endl; 
    } 
}; 
class JSDMem :public Memory 
{ 
public: 
    void work() 
    { 
        cout << "我是JSDMem廠家" << endl; 
    } 
}; 
void main() 
{ 
    HardDisk*handdisk=NULL; 
    Memory*memory=NULL; 
    Cpu*cpu=NULL; 
    handdisk = new XSDisk; 
    memory= new JSDMem; 
    cpu = new InterCpu; 
    ComPuter*mycomputer = new ComPuter(harddisk, memory, cpu); 
    mycomputer->work(); 
    delete mycomputer; 
    delete cpu; 
    delete  memory; 
    delete  harddisk; 
    cout << "hello" << endl; 
    system("pause"); 
    return; 
} 

接口隔離原則不應(yīng)該強迫客戶的程序依賴他們不需要的接口方法,一個接口應(yīng)該是提供一種對外功能,不應(yīng)該把所有的操作都封裝到一個接口中去

里氏替換原則任何抽象類出現(xiàn)的地方都可以用它的實現(xiàn)類進行替換,實際就是虛擬機智語言級別,實現(xiàn)面向?qū)ο蠊δ?/p>

優(yōu)先使用組合而不是繼承原則如果使用繼承,會導致復位的任何變化,都可能影響此類的行為,如果使用對象組合,就降低了這種依賴關(guān)系

迪米特法則一個對象應(yīng)當對其他對象盡可能少的了解,從而降低各個對象之間的耦合,提高系統(tǒng)的可維護性。例如,在一個程序中,各個模塊之間相互調(diào)用時,通常會提供一個統(tǒng)一的接口來實現(xiàn),這樣其他模塊不需要了解另外一個模塊的內(nèi)部實現(xiàn)細節(jié),這樣當一個模塊內(nèi)部的實現(xiàn)發(fā)生改變的時候,不會影響其他模塊的使用黑盒原理。

到此這篇關(guān)于淺談C++ 設(shè)計模式的基本原則的文章就介紹到這了,更多相關(guān)C++ 設(shè)計模式的基本原則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言函數(shù)的遞歸和調(diào)用實例分析

    C語言函數(shù)的遞歸和調(diào)用實例分析

    一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。這種函數(shù)稱為遞歸函數(shù)。C語言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,主調(diào)函數(shù)又是被調(diào)函數(shù)。執(zhí)行遞歸函數(shù)將反復調(diào)用其自身,每調(diào)用一次就進入新的一層
    2013-07-07
  • C/C++實現(xiàn)雙路快速排序算法原理

    C/C++實現(xiàn)雙路快速排序算法原理

    這篇文章主要為大家詳細介紹了C/C++實現(xiàn)雙路快速排序算法原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全

    C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全

    這篇文章主要介紹了C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 帶你粗略了解C++回文鏈表

    帶你粗略了解C++回文鏈表

    這篇文章主要介紹了Python實現(xiàn)的判斷回文鏈表算法,結(jié)合實例形式分析了Python針對鏈表是否為回文鏈表進行判斷的相關(guān)算法實現(xiàn)技巧,需要的朋友可以參考下
    2021-08-08
  • c語言 兩字符串交叉合并實例

    c語言 兩字符串交叉合并實例

    今天小編就為大家分享一篇c語言 兩字符串交叉合并實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C++核心編程之占位參數(shù)和默認參數(shù)

    C++核心編程之占位參數(shù)和默認參數(shù)

    這篇文章主要介紹了C++核心編程之占位參數(shù)和默認參數(shù),c++中函數(shù)的形參列表中的形參是可以有默認值的,函數(shù)的形參列表里可以有占位參數(shù),用來占位,調(diào)用函數(shù)時必須填補位置。下面更多相關(guān)內(nèi)容的詳細介紹,需要的小伙伴可以參考一下
    2022-03-03
  • C語言中幾種常量的認識和理解

    C語言中幾種常量的認識和理解

    這篇文章主要為大家介紹了C語言常量的認識和理解,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C語言?超詳細梳理總結(jié)動態(tài)內(nèi)存管理

    C語言?超詳細梳理總結(jié)動態(tài)內(nèi)存管理

    動態(tài)內(nèi)存是相對靜態(tài)內(nèi)存而言的。所謂動態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動態(tài)內(nèi)存的管理
    2022-03-03
  • Qt控件之QToolButton的使用及示例

    Qt控件之QToolButton的使用及示例

    QToolButton類提供了一個快速訪問命令或選項的按鈕,通常在QToolBar內(nèi)部使用,本文主要介紹了Qt控件之QToolButton的使用及示例,感興趣的可以了解一下
    2023-10-10
  • OpenGL繪制三次Bezier曲線

    OpenGL繪制三次Bezier曲線

    這篇文章主要為大家詳細介紹了OpenGL繪制三次Bezier曲線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

格尔木市| 区。| 基隆市| 曲松县| 方正县| 舒城县| 濮阳县| 南昌县| 砚山县| 沙田区| 新晃| 巴彦淖尔市| 逊克县| 泰顺县| 瑞昌市| 林口县| 游戏| 文昌市| 安丘市| 洛宁县| 延庆县| 晋宁县| 郑州市| 金寨县| 罗甸县| 九龙坡区| 无为县| 长宁县| 长海县| 若尔盖县| 莫力| 武宣县| 苗栗县| 江山市| 长顺县| 民和| 甘孜县| 内丘县| 慈溪市| 邻水| 油尖旺区|