鱼儿慢慢游~~

导航

 

定义:( Adapter)

将一个类的接口转换为客户希望的另一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作

例子:

适配器模式比较容易理解, 现实生活中也有许多适配器的模型, 比如之前耳机插口有粗有细,然后就出现了一种 粗细口转化的工具

这种工具我们就可以看作为适配器. 适配器模式主要适用于希望复用一些现存的功能接口,但是接口的形式与要求不一致的情况.

适配器模式结构图:

 

 

 代码示例:

class Earphone 
{
	public:
		virtual void listen();
};

class EarphoneAdapter: EarPhone
{
	SmallEarPhone * smEar;
	public:
	void listen()
	{
		return smEar->listenMusic();
	}
};

class SmallEarPhone
{
	public:
		void listenMusic()
		{
			cout <<"bbulabulabua" << endl;
		}
};

class Client
{
	public:
		void playMusic()
		{
			earphone = new EarPhoneAdapter();
			earphone.listen();
			delete earphone;
		}
	private:
		EarPhone * earphone;
}

 客户端听歌, 但是第三方库已经实现了听歌的功能, 却是用细孔耳机听歌的, 我们现在只有粗孔耳机,因此,需要适配器将粗孔耳机转化为细孔的,然后使用第三方的听歌功能.

适配器模式适用的场景:

当双方都不方便修改自己的接口时,考虑使用适配器模式. 常见的是我们在调用第三方库时, 当需要的接口形式与我们提供的不一致时, 考虑使用适配器将其转换.

posted on 2016-07-06 11:42  miss_UU  阅读(164)  评论(0编辑  收藏  举报