欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談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++正則表達式

    一文帶你簡單了解c++正則表達式

    正則表達式在匹配字符串,驗證輸入合法性時經(jīng)常用到.C++?11標準庫中已經(jīng)支持了正則表達式,下面這篇文章主要給大家介紹了關(guān)于c++正則表達式的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 一篇文章帶你入門C語言:操作符

    一篇文章帶你入門C語言:操作符

    這篇文章主要介紹了C語言中的運算符,文中講解非常詳細,適合初學小白進行學習,想入門C語言的朋友不妨了解下,希望能給你帶來幫助
    2021-08-08
  • DSP中浮點轉(zhuǎn)定點運算--定點數(shù)模擬浮點數(shù)運算及常見的策略

    DSP中浮點轉(zhuǎn)定點運算--定點數(shù)模擬浮點數(shù)運算及常見的策略

    本文主要講解DSP中定點數(shù)模擬浮點數(shù)運算及常見的策略,具有參考價值,需要的朋友可以參考一下。
    2016-06-06
  • C語言帶頭雙向循環(huán)鏈表的示例代碼

    C語言帶頭雙向循環(huán)鏈表的示例代碼

    這篇文章主要介紹了如何利用C語言實現(xiàn)帶頭雙向循環(huán)鏈表,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • 詳解c++ 繼承

    詳解c++ 繼承

    這篇文章主要介紹了c++ 繼承的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 詳解DAG上的DP

    詳解DAG上的DP

    DAG:有向無環(huán)圖。DAG是學習動態(tài)規(guī)劃的基礎(chǔ),很多問題都可以直接轉(zhuǎn)化為DAG上的最長路、最短路或路徑計數(shù)問題。本文將詳細介紹DAG上的DP。
    2021-05-05
  • Opencv 視頻轉(zhuǎn)為圖像序列的實現(xiàn)

    Opencv 視頻轉(zhuǎn)為圖像序列的實現(xiàn)

    今天小編就為大家分享一篇Opencv 視頻轉(zhuǎn)為圖像序列的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C語言?模擬實現(xiàn)memcpy與memmove函數(shù)詳解

    C語言?模擬實現(xiàn)memcpy與memmove函數(shù)詳解

    這篇文章主要介紹了C語言詳解如何模擬內(nèi)存函數(shù),用到了mencpy與memmove兩個函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-04-04
  • C語言題目:有多少張桌子--并查集

    C語言題目:有多少張桌子--并查集

    并查集是一種用于管理分組的數(shù)據(jù)結(jié)構(gòu)。它具備兩個操作:(1)查詢元素a和元素b是否為同一組 (2) 將元素a和b合并為同一組,需要的朋友可以參考下
    2021-09-09
  • C++讀取配置文件的示例代碼

    C++讀取配置文件的示例代碼

    這篇文章主要介紹了C++讀取配置文件的示例代碼,幫助大家更好的理解和學習C++開發(fā),感興趣的朋友可以了解下
    2020-08-08

最新評論