设计模式(五)桥接模式Bridge == Pointer To Implementation
来源:互联网 发布:什么软件可以汉化 编辑:程序博客网 时间:2024/06/15 02:28
意图:将抽象部分与实现部分分离,使它们都可以独立的变化。(核心在抽象,为了应对变更才有了不同的实现)
示例代码:
接口类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();//桥接:将业务类与实现类隔离开来}实现类imp
imp.h
#pragma once//没必要继承sampleclass 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;};
0 0
- 设计模式(五)桥接模式Bridge == Pointer To Implementation
- 减少编译时间:pointer to implementation(Impl设计模式)
- 设计模式--Pimpl(pointer to implementation 指向实现的指针)
- 设计模式:桥接模式(Bridge)
- 设计模式:桥接模式(Bridge)
- 设计模式:桥接模式(Bridge)
- 设计模式:桥接模式(Bridge)
- 【设计模式】桥接模式(Bridge)
- 设计模式之 Bridge 模式(桥接模式)
- 每天一个(设计模式)-- Bridge模式(桥接模式)
- 桥接设计模式bridge
- 设计模式实例(Lua)笔记之五(Bridge模式)
- 设计模式(10)-桥接模式(Bridge)
- 设计模式 Bridge 桥接模式
- Java设计模式-----Bridge桥接模式
- 设计模式--桥接模式(Bridge)
- 设计模式(12)-桥接模式(Bridge)
- 设计模式-----桥接模式(Bridge Pattern)
- 在Linux(centos)中搭建LAMP的小过程
- Hibernate
- 如何把一个包含features和plugins的folder 变成一个Maven Tycho支持的 P2仓库?
- Linux中创建别名
- 错误1error LNK2019: 无法解析的外部符号 _wWinMain@16,该符号在函数 ___tmainCRTStartup 中被引用E:\elipse demo\LTG\LTG\
- 设计模式(五)桥接模式Bridge == Pointer To Implementation
- C++经典面试题
- 使用轨迹球来实现视图的旋转
- ViewPager 详解(四)----自主实现滑动指示条
- [网络流24题][CODEVS1916]负载平衡问题(费用流)
- Java 加载图片
- 数据库MySQL基础——增删查改
- 常用DOS命令
- ViewPager 详解(五)-----使用Fragment实现ViewPager滑动