您好,登錄后才能下訂單哦!
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á);
免責(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)容。