当前位置: 首页 > 编程笔记 >

C++:适配器模式

姬经义
2023-04-24

模式定义

将一类的接口转换成客户希望的另一个接口,Adaptor模式使得原本由于接口不兼容而不能工作的那些类可以一起工作。

适配器模式的优点

适配器模式可以让两个没有任何关系的类在一起运行, 只要适配器这个角色能够搞定他们就成。

增加了类的透明性

提高了类的复用程度

灵活性非常好

适配器模式的使用场景

你有动机修改一个已经投产中的接口时, 适配器模式可能是最适合你的模式。

适配器模式最好在详细设计阶段不要考虑它, 它不是为了解决还处在开发阶段的问题,而是解决正在服役的项目问题, 没有一个系统分析师会在做详细设计的时候考虑使用适配器模式, 这个模式使用的主要场景是扩展应用中。

//目标接口(新接口)
class ITarget {
public:
	virtual void process() = 0;
};

//遗留接口(老接口)
class IAdaptee {
public:
	virtual void foo(int data) = 0;
	virtual int bar() = 0;
};
//遗留类型
class OldClass : public IAdaptee {
	void foo(int data){}
	int bar(){}
};
//对象适配器
class Adapter : public ITarget { //继承
protected:
	IAdaptee* pAdaptee;//组合
public:
	Adapter(IAdaptee* pAdaptee) {
		this->pAdaptee = pAdaptee;
	}
	virtual void process() {
		int data = pAdaptee->bar();
		pAdaptee->foo(data);
	}
};
int main() {
	IAdaptee* pAdaptee = new OldClass();
	ITarget* pTarget = new Adapter(pAdaptee);
	pTarget->process();
}
 类似资料:
  • 主要内容:介绍,实现,MediaPlayer.java,AdvancedMediaPlayer.java,VlcPlayer.java,Mp4Player.java,MediaAdapter.java,AudioPlayer.java,AdapterPatternDemo.java适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的

  • 亦称: 封装器模式、Wrapper、Adapter 意图 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 问题 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后向用户呈现出美观的图表。 在开发过程中, 你决定在程序中整合一个第三方智能分析函数库。 但是遇到了一个问题, 那就是分析函数库只兼容 JSON 格式的数据。 你无法 “直接”

  • 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其中,音频播放

  • 问题 想象你去国外旅行,一旦你意识到你的电源线插座与酒店房间墙上的插座不兼容时,幸运的是你记得带你的电源适配器。它将一边连接你的电源线插座另一边连接墙壁插座,允许它们之间进行通信。 同样的情况也可能会出现在代码中,当两个 ( 或更多 ) 实例 ( 类、模块等 ) 想跟对方通信,但其通信协议 ( 例如,他们所使用的语言交流 ) 不同。在这种情况下,Adapter 模式更方便。它会充当翻译,从一边到另

  • 简介 在设计模式中,适配器模式有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 适配器模式包含两种,一种是类适配器,另一种是对象适配器。类适配器是通过类的继承实现的适配,而对象适配器是通过对象间的关联关系,组合关系实现的适配。二者在实际项目中都会经常用到,由于对象适配

  • 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其中,音频播放