用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析
廠家生產(chǎn)不同的產(chǎn)品。。。。產(chǎn)品和廠家有這組合的關(guān)系。

上代碼
// Bridge.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
/************************************************************************/
#include "stdafx.h"
#include <iostream>
using namespace std;
class Product
{
public:
Product(){}
virtual ~Product(){}
virtual void make()=0;
virtual void sell()=0;
};
class ProductA:public Product
{
public:
ProductA(){}
virtual ~ProductA(){}
virtual void make()
{
cout<<"ProductA:make()"<<endl;
}
virtual void sell()
{
cout<<"ProductA:sell()"<<endl;
}
};
class ProductB:public Product
{
public:
ProductB(){}
virtual ~ProductB(){}
virtual void make()
{
cout<<"ProductB:make()"<<endl;
}
virtual void sell()
{
cout<<"ProductB:sell()"<<endl;
}
};
class Corp
{
public:
Corp(Product* pro)
:m_product(pro)
{}
virtual ~Corp()
{
delete m_product;
}
virtual void process()
{
m_product->make();
m_product->sell();
}
private:
Product *m_product;
};
class CorpA:public Corp
{
public:
CorpA(Product * pro) :Corp(pro){}
virtual ~CorpA(){}
virtual void process()
{
cout<<"CorpA():process()"<<endl;
Corp::process();
}
};
class CorpB:public Corp
{
public:
CorpB(Product * pro) :Corp(pro){}
virtual ~CorpB(){}
virtual void process()
{
cout<<"CorpB:process()"<<endl;
Corp::process();
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Product* product;
product = new ProductA;
Corp * corp ;
corp = new CorpA(product);
corp ->process();
cout<<"----------"<<endl;
product= new ProductB;
corp = new CorpB(product);
corp->process();
return 0;
}
ok 今天就到這里。。。。繼續(xù)學(xué)習(xí)
相關(guān)文章
c語(yǔ)言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解
今天小編就為大家分享一篇c語(yǔ)言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
vc++實(shí)現(xiàn)的tcp socket客戶端和服務(wù)端示例
這篇文章主要介紹了vc++實(shí)現(xiàn)的tcp socket客戶端和服務(wù)端示例,需要的朋友可以參考下2014-03-03
OpenCV中的cv::Mat函數(shù)將數(shù)據(jù)寫入txt文件
C語(yǔ)言詳解結(jié)構(gòu)體的內(nèi)存對(duì)齊與大小計(jì)算
C語(yǔ)言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法
QT5實(shí)現(xiàn)簡(jiǎn)單的TCP通信的實(shí)現(xiàn)

