最近学了很多设计模式,每次面试的时候也被人问设计模式,说懂吧,不懂,说不懂,又懂,学习记录下,以后丰富。
桥接模式(Bridge)是一种结构型设计模式,通过使用封装,聚合以及继承为让不同的类承担不同的职责。它将抽象和行为实现分离开来。
桥接模式的角色和职责
客户端调用抽象类
印象最深刻的就是手机(品牌)和软件(游戏软件和通讯录软件)
#include <iostream>
#include <string>
#include <vector>
using namespace std;
//手机软件
class HandsetSoft
{
public:
virtual void Run()=0;
};
//游戏软件
class HandsetGame : public HandsetSoft
{
public:
virtual void Run()
{
cout<<"运行手机游戏"<<endl;
}
};
//通讯录软件
class HandSetAddressList : public HandsetSoft
{
public:
virtual void Run()
{
cout<<"手机通讯录"<<endl;
}
};
//手机品牌
class HandsetBrand
{
protected:
HandsetSoft* m_soft;
public:
void SetHandsetSoft(HandsetSoft* temp)
{
m_soft = temp;
}
virtual void Run()=0;
};
//M品牌
class HandsetBrandM : public HandsetBrand
{
public:
HandsetBrandM()
{
cout<<"洛基亚"<<endl;
}
virtual void Run()
{
m_soft->Run();
}
};
//N品牌
class HandsetBrandN : public HandsetBrand
{
public:
HandsetBrandN()
{
cout<<"兰博基尼"<<endl;
}
virtual void Run()
{
m_soft->Run();
}
};
//客户端
int main()
{
HandsetBrand *brand;
brand = new HandsetBrandM();
brand->SetHandsetSoft(new HandsetGame());
brand->Run();
brand->SetHandsetSoft(new HandSetAddressList());
brand->Run();
brand = new HandsetBrandN();
brand->SetHandsetSoft(new HandsetGame());
brand->Run();
brand->SetHandsetSoft(new HandSetAddressList());
brand->Run();
return 0;
}
https://www.cnblogs.com/lang5230/p/5556611.html