所谓的适配器模式其实是加了一个抽像层,举例,当姚明打球的时候是需要一个翻译的,而这个翻译就是适配器
本来姚明不懂英语,是不能直接和队友交流的,所以需要一个翻译.这样就在翻译类里面内建一个姚明类,信息可
以通过翻译类的接口和姚明交流,代码如下
#include "iostream.h"
class player//抽像,提出公共接口,便于扩展
{
public:
player(){}
player(char *name){this->name = name;}//构造函数。可以通过派生类初始化
virtual ~player(){}
virtual void Attack() = 0;
public:
char *name;
};
class Foreigner
{
public:
Foreigner(char *name){this->name = name;}//需要调用的类,此类为内建的类,在后台工作
virtual ~Foreigner(){}
void Attack(){cout<<name<<endl;}
private:
char *name;
};
class Translator : public player//中介者,foreigner的函数调用可以通过此类进行
{
public:
Translator(char *name){m_foreigner = new Foreigner(name);}
virtual ~Translator(){}
virtual void Attack(){m_foreigner->Attack();}
public:
Foreigner *m_foreigner;
};
void main()
{
player *b = new Translator("小李");
b->Attack();
}