溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

代理模式和橋接模式

發(fā)布時間:2020-08-05 19:13:40 來源:網(wǎng)絡(luò) 閱讀:1259 作者:匯天下豪杰 欄目:編程語言

1、代理模式

 側(cè)重于邏輯控制!


2、具體實現(xiàn)

  (1)、代碼如下

#include<iostream>
using namespace std;

class Subject{   //賣書的接口
    public:
        virtual void sailbook() = 0;
    private:
};

class RealBook : public Subject{  //實體店賣書
    public:
        virtual void sailbook(){
            cout<<"賣書"<<endl;
        }   
    private:
};
//a中包含b類;
//讓代理類(Dangdang)包含了一個書店(RealBook),代理和書店都實現(xiàn)了一個協(xié)議
class Dangdang : public Subject{  //網(wǎng)上賣書
    public:
        virtual void sailbook(){
            RealBook *rsb = new RealBook;
            rsb->sailbook();
            discount();
        }   
    public:
        void discount(){
            cout<<"雙十一打折"<<endl;
        }
    private:
        Subject *m_subject;
};

int main(void){
    Subject *s = new Dangdang;
    s->sailbook();

    delete s;

    return 0;
}

  (2)、運(yùn)行結(jié)果

代理模式和橋接模式


3、橋接模式

  將抽象部分和實現(xiàn)部分進(jìn)行分離;

  外觀模式:客戶要使用N個功能,N個功能又相似,就可以抽象起來;

  享元模式:有一個對象可能使用1000次,怎樣避免對這些對象進(jìn)行重復(fù)的創(chuàng)建呢?遍面對象的大量創(chuàng)建!


4、具體實現(xiàn)

  (1)、代碼如下

#include<iostream>
using namespace std;

class Engine{
    public:
        virtual void InstallEngine(){
    
        }   
    private:

};

class Engine4400cc : public Engine{
    public:
        virtual void InstallEngine(){
            cout<<"我是4400 發(fā)動機(jī) 安裝完畢"<<endl;
        }   
    private:
}

class Engine4500cc : public Engine{
    public:
        virtual void InstallEngine(){
            cout<<"我是4500 發(fā)動機(jī) 安裝完畢"<<endl;
        }
    private:
}

class Car{
    public:
        Car(Engine *engine){
            m_engine = engine;
        }
        virtual void installEngine = 0;
    private:
        Engine *m_engine;

};

class BM5{
    public:
        BM5(){

        }
    private:
};    
int main(void){

    return 0;
}

 

5、組合模式

  想將一大堆不同的事物用同一個類進(jìn)行表達(dá);




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI