适配器模式
GOOD:双方都不适合修改的时候,可以考虑使用适配器模式。

#include <iostream>
#include <string>
using namespace std;
class Player
{
protected:
string name;
public:
Player(string strName) { name = strName; }
virtual void Attack()=0;
virtual void Defense()=0;
};
class Forwards : public Player
{
public:
Forwards(string strName):Player(strName){}
public:
virtual void Attack()
{
cout<<name<<"前锋进攻"<<endl;
}
virtual void Defense()
{
cout<<name<<"前锋防守"<<endl;
}
};
class Center : public Player
{
public:
Center(string strName):Player(strName){}
public:
virtual void Attack()
{
cout<<name<<"中场进攻"<<endl;
}
virtual void Defense()
{
cout<<name<<"中场防守"<<endl;
}
};
//为中场翻译
class TransLater: public Player
{
private:
Center *player;
public:
TransLater(string strName):Player(strName)
{
player = new Center(strName);
}
virtual void Attack()
{
player->Attack();
}
virtual void Defense()
{
player->Defense();
}
};
//客户端
int main()
{
Player *p=new TransLater("小李");
p->Attack();
return 0;
}
//转载请注明,文章来自:http://blog.youkuaiyun.com/windows_nt
本文通过篮球位置的转换示例介绍了适配器模式的应用。当两个类接口不兼容但逻辑相似时,可以通过创建一个适配器来实现类之间的转换。代码展示了如何将中场球员的行为适配给前锋球员。
645

被折叠的 条评论
为什么被折叠?



