设计模式-适配器模式

简介: 设计模式-适配器模式
/*
适配器模式:让不兼容的接口可以在一起工作
*/
class VGA //VGA接口类
{
public:
  virtual void play() = 0;
};
//TV01表示支持VGA接口的投影仪
class TV01 : public VGA
{
public:
  void play()
  {
    cout << "通过VGA接口连接投影仪,进行视频播放" << endl;
  }
};
//实现一个电脑类(只支持VGA接口)
class Computer
{
public:
  //由于电脑只支持VGA接口,所以该方法的参数也只能支持VGA接口的指针/引用
  void playVideo(VGA *pVGA)
  {
    pVGA->play();
  }
};
/*
方法1:换一个支持HDMI接口的电脑
方法2:买一个转换头(适配器),能够把VGA转成HDMI信号
*/
//进了一批新的投影仪,但是新的投影仪都是只支持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()));
  return 0;
}
相关文章
|
21天前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
31 4
|
3月前
|
设计模式 存储 数据库
设计模式之适配器模式
设计模式之适配器模式
|
4月前
|
设计模式 Java
Java设计模式【六】:适配器模式
Java设计模式【六】:适配器模式
15 0
|
3天前
|
设计模式 Go
[设计模式 Go实现] 结构型~适配器模式
[设计模式 Go实现] 结构型~适配器模式
|
1月前
|
设计模式 算法 API
适配器模式:C++设计模式中的瑞士军刀
适配器模式:C++设计模式中的瑞士军刀
48 0
|
1月前
|
设计模式
设计模式之适配器模式
设计模式之适配器模式
|
1月前
|
设计模式 Java 程序员
【设计模式】适配器模式
【设计模式】适配器模式
|
3月前
|
设计模式 程序员
【设计模式】适配器模式
【1月更文挑战第27天】【设计模式】适配器模式
|
3月前
|
设计模式
设计模式-类适配器模式
设计模式-类适配器模式
13 0
|
3月前
|
设计模式 uml
设计模式-适配器模式1
设计模式-适配器模式1
23 0
设计模式-适配器模式1