桥接模式
桥接模式是指将抽象部分和实现部分以“组合”的方式分离
#pragma once
#include <iostream>
#include <vector>
#include <string>
#include <Windows.h>
using namespace std;
//桥接模式
//实现类(我们来抽象手机功能举例)
class PhoneSys
{
public:
virtual void func() = NULL;
};
//X卓系统
class Adr : public PhoneSys
{
public:
virtual void func()
{
cout << "power by x卓系统" << endl;
}
};
//apple系统
class apple : public PhoneSys
{
public:
virtual void func()
{
cout << "power by apple系统" << endl;
}
};
//抽象类(我们来抽象手机品牌举例)
class Phone
{
protected:
PhoneSys* power; //系统支持
public:
Phone(PhoneSys* p) {
if (NULL != p)
power = p;
}
void operate() {
power->func();
}
};
class iphone : public Phone
{
public:
iphone(PhoneSys* p) : Phone(p){}
void name(){ cout << "苹果手机" << endl; }
};
class mi : public Phone
{
public:
mi(PhoneSys* p) : Phone(p) {}
void name() { cout << "mi手机" << endl; }
};
int main()
{
Adr adrSys;
apple appleSys;
iphone a(&appleSys);
mi b(&adrSys);
a.name();
a.operate();
b.name();
b.operate();
system("pause");
return 1;
}
桥接模式的主要思想是把“功能实现”分离、独立出来。进而减少代码的耦合