什么是桥接模式,这篇文章写的比较通俗易懂。
https://refactoringguru.cn/design-patterns/bridge
桥接模式是一种结构型设计模式,它把类的具体实现细节对用户隐藏起来,以达到类之间的最小耦合关系。在具体编程实践中桥接模式也被称为pimpl或者handle/body惯用法。它可以将头文件的依赖关系降到最小,减少编译时间而且可以不使用虚函数实现多态。
现在声明一个类sample,它向外界暴露最小的细节,真正的实现在内部类impl,sample用一个shared_ptr来保存它的指针。
#include <memory>
#include <iostream>
class sample
{
private:
class impl;
std::shared_ptr<impl> p;
public:
sample(); //构造函数
void print(); //提供给外界的接口
};
在sample的cpp中完整定义impl类和其他功能:
#include "sample.h"
class sample::impl
{
public:
void print()
{
std::cout << "impl print" << std::endl;
}
};
sample::sample():p(new impl){}
void sample::print()
{
p->print();
}
主函数:
#include "stdafx.h"
#include <iostream>
#include <memory>
#include "sample.h"
int main()
{
sample s;
s.print();
return 0;
}
执行结果: