2_5 BridgeMode.cpp 桥接模式
生活随笔
收集整理的這篇文章主要介紹了
2_5 BridgeMode.cpp 桥接模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
// 定義:將抽象部分和他的實現(xiàn)部分分離,使他們都可以獨(dú)立的變化
//
// 模式舉例:有兩種畫筆毛筆和蠟筆,需要畫出3種粗細(xì)寬度和12種不同顏色
// 傳統(tǒng)設(shè)計就像蠟筆,需要3*12=36支筆,
// 采用橋接模式,就像毛筆,用三中不同粗細(xì)的毛筆和12種不同的顏料就可以了
//
// 模式特點:橋接模式是一個典型依賴倒置的實現(xiàn),即依賴抽象而不依賴具體實現(xiàn)
//
//#include<iostream>
using namespace std;class PhoneSoftware
{
public:virtual void run()=0;
};class PhoneNotepad : public PhoneSoftware
{
public:virtual void run(){cout << "phone software notepad running...";}
};class PhoneGame : public PhoneSoftware
{
public:virtual void run(){cout << "phone software game running...";}
};//感覺在Phone抽象接口中留有設(shè)置software接口比較好
class Phone
{
public:virtual void operation()=0;void setSoftware(PhoneSoftware * software){m_software = software;}protected:PhoneSoftware * m_software;
};class HuaweiPhone : public Phone
{
public:virtual void operation(){cout <<"on huawei phone ";m_software->run();}
};class ApplePhone : public Phone
{
public:virtual void operation(){cout <<"on apple phone ";m_software->run();}
};int main()
{PhoneSoftware * software = new PhoneGame();Phone * phone = new HuaweiPhone();phone->setSoftware(software);phone->operation();return 0;
}
?
總結(jié)
以上是生活随笔為你收集整理的2_5 BridgeMode.cpp 桥接模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 0_0 SimpleFactoryMod
- 下一篇: 1_2 AbstractFactoryM