設計模式(五)橋接模式Bridge == Pointer To Implementation
意圖:將抽象部分與實現部分分離,使它們都可以獨立的變化。(核心在抽象,為了應對變更才有了不同的實現)
示例程式碼:
介面類sample
sample.h
#pragma once
#include "boost/smart_ptr.hpp"
using namespace boost;
class imp;//只需要宣告無需包含原始檔
class sample
{
public:
sample(void);
~sample(void);
void print(void) const;
private:
//當sample析構的時候會先呼叫成員變數的析構
//pimp_的析構會引發引用計數為0,從而呼叫imp物件的析構
boost::shared_ptr<imp> pimp_;
};
sample.cpp
#include "sample.h"
//必須包含定義
#include "imp.h"
#include<iostream>
using namespace std;
sample::sample(void):pimp_(new imp)//建構函式完成初始化,shared_ptr接受new返回的指標
{
cout<<"sample()"<<endl ;
}
sample::~sample(void)
{
cout<<"~sample()"<<endl ;
}
void sample::print(void) const
{
this->pimp_->imp_print();//橋接:將業務類與實現類隔離開來
}
實現類impimp.h
#pragma once
//沒必要繼承sample
class imp
{
public:
imp(void);
~imp(void);
void imp_print(void) const;
};
imp.cpp
#include "imp.h"
#include<iostream>
using namespace std;
//這裡修改之後的編譯不會影響sample,以及main的重新編譯
imp::imp(void)
{
cout<<"imp()"<<endl ;
}
imp::~imp(void)
{
cout<<"~imp()"<<endl;
}
void imp::imp_print(void) const
{
cout<<"imp::pint()"<<endl;
}
bridge_main.cpp#include "sample.h"
int main(int,char**)
{
sample s;
s.print();
return 0;
};
相關文章
- 設計模式 | 橋接模式(bridge)設計模式橋接
- 《設計模式》 - 6. 橋接模式( Bridge )設計模式橋接
- C#設計模式-橋接模式(Bridge Pattern)C#設計模式橋接
- C#設計模式系列:橋接模式(Bridge)C#設計模式橋接
- JAVA設計模式之 橋接模式【Bridge Pattern】Java設計模式橋接
- 設計模式--橋接模式Bridge(結構型)設計模式橋接
- 橋接模式(Bridge)橋接模式
- 設計模式的征途—8.橋接(Bridge)模式設計模式橋接
- C#設計模式(8)——橋接模式(Bridge Pattern)C#設計模式橋接
- 設計模式 - Bridge 橋模式設計模式
- 設計模式-橋接模式設計模式橋接
- 設計模式:橋接模式設計模式橋接
- c++涉及模式 橋接模式(bridge Pattern)C++模式橋接
- Java設計模式-橋接模式Java設計模式橋接
- 小白設計模式:橋接模式設計模式橋接
- 設計模式之橋接模式設計模式橋接
- 設計模式(八)——橋接模式設計模式橋接
- 設計模式之【橋接模式】設計模式橋接
- javascript設計模式橋接模式JavaScript設計模式橋接
- 設計模式(十二):橋接模式設計模式橋接
- PHP 設計模式之橋接模式PHP設計模式橋接
- GoLang設計模式19 - 橋接模式Golang設計模式橋接
- Java設計模式(7)----------橋接模式Java設計模式橋接
- 9.設計模式-橋接模式設計模式橋接
- 極簡設計模式-橋接模式設計模式橋接
- Python設計模式-橋接模式Python設計模式橋接
- 大話設計模式—橋接模式設計模式橋接
- 設計模式之橋接設計模式橋接
- 設計模式(七)橋接設計模式橋接
- 設計模式之旅12--橋接模式設計模式橋接
- Java設計模式之(六)——橋接模式Java設計模式橋接
- 23種設計模式(9)- 橋接模式設計模式橋接
- 設計模式系列 11-- 橋接模式設計模式橋接
- Android設計模式之橋接模式Android設計模式橋接
- java設計模式之一 橋接模式Java設計模式橋接
- 我學設計模式 之 橋接模式設計模式橋接
- 設計模式學習-裝飾模式,橋接模式設計模式橋接
- Java橋模式(Bridge模式)Java模式