橋接模式的很好實現方式(應用shared ptr)

2021-05-24 05:01:26 字數 822 閱讀 9855

橋接模式是一種結構型設計模式,它把類的具體實現細節對使用者隱藏起來,以達到類之間的最小耦合關係。橋接模式也被稱為pimpl慣用法,它可以將標頭檔案的依賴關係降到最小,減少編譯時間,而且可以不適用虛函式實現多型。

首先宣告乙個類sample,它僅向外界暴露了最小的細節,真正的實現在內部類impl。

sample.h

#pragma once

#include using boost::shared_ptr;

class sample

;

在sample的cpp檔案中完整定義impl類和其他功能

sample.cpp

#include "sample.h"

#include #include // 內部類的實現

class sample::impl

;void sample::impl::print()

sample::sample(void)

void sample::print()

最後是使用方法

sample s;

s.print();

橋接模式非常好用,它可以任意改變具體的實現而外界對此一無所知,也減少了原始檔之間的編譯依賴,使程式獲得了更多的靈活性。而shared_ptr是實現它的最佳工具之一,它解決了指標的共享和引用計數問題。

本文參考《boost程式庫完全開發指南》中的記憶體管理一章

關於pimpl慣用法請參考:http://blog.sina.com.cn/s/blog_48f93b530100n2bc.html

橋接模式的簡單實現

最近經常碰到橋接模式的需求。所謂橋接模式即 將網路側分配的ip 可能是公網ip,也可能是私網ip 直接分配給連線到該路由裝置的pc或其它上網裝置。解釋的不太清楚 之前畫的圖也一時找不到了,後續有空再把圖加上就會解釋的更清楚一些。具體實現 關閉 對wan口的dhcp 我這個裝置的wan口名稱是wan0...

寒江雪 Go實現橋接模式

bridge pattern說的是,當乙個系統中,包含乙個元件,該元件是可變的,該系統是可變的。這個時候就需要乙個橋連線抽象的系統和抽象的元件。如果該系統包含多個其他的元件,這些元件都是可變的時候,也需要在該系統和這些元件之間架橋。如果該系統包含的某個元件所包含的元件,是可變的,那麼遞迴地重複上述過...

php橋接模式應用案例分析

橋接模式是將抽象部分與它的實現部分分離,使它們都可以獨立地變化。示例 當乙個資訊時 根據傳送渠道分為 qq訊息 email訊息 簡訊訊息等 根據訊息型別分為 普通 警告 危急等 每種訊息都有三種型別 普通qq訊息 警告qq訊息 危急qq訊息.每種情況單獨寫乙個類就需要寫九個,如果擴充套件乙個型別,就...