学习笔记:适配器模式
  9aGNI37h2JhV 2023年11月22日 21 0
#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()));
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   14   0   0 ideciciMaxideMax
9aGNI37h2JhV