#include<iostream>
using namespace std;
class VGA
{
public:
virtual void play() = 0;
};
//TV01表示支持VGA接口的投影仪
class TV01 :public VGA
{
public:
virtual void play()
{
cout << "通过VGA接口链接投影仪,进行视频播放" << endl;
}
};
//实现一个电脑类(只支持VGA接口)
class Computer
{
public:
void playVideo(VGA* pVga)
{
pVga->play();//该方法相当于就是转换头,做不同接口的信号转换
}
};
//进了一批新的投影仪,但是新的投影仪都只支持HDMI接口.
class HDMI
{
public:
virtual void play() = 0;
};
class TV02 :public HDMI
{
public:
void play()
{
cout<< "通过HDMI接口链接投影仪,进行视频播放" << endl;
}
};
//由于电脑(VGA接口)和投影仪(HDMI)无法直接相连,所以需要添加适配器类
class VGAToHDMIAdapter:public VGA
{
public:
VGAToHDMIAdapter(HDMI* p):pHdmi(p){}
void play()
{
pHdmi->play();
}
private:
HDMI* pHdmi;
};
int main()
{
Computer computer;
computer.playVideo(new TV01());
computer.playVideo(new VGAToHDMIAdapter(new TV02()));
}