定义
代理模式可以为其他对象提供一种代理,以控制对这个对象的访问。
所谓代理,与被代理对象具有相同的借口,客户端需通过代理与被代理对象进行交互。一般在交互过程中(交互前后),进行某些特别的处理。
示例
lass Player
{
public:
virtual void playGame() = 0;
};
class RealPlayer: public Player
{
public:
virtual void playGame()
{
cout<<"real play game"<<endl;
}
};
class ProxyPlayer: public Player
{
public:
ProxyPlayer(Player* player)
{
m_player = player;
}
virtual void playGame()
{
m_player -> playGame();
cout<<"start to upgrade."<<endl;
}
private:
Player* m_player;
};
int main(int argc, char *argv[]) {
Player* player = new RealPlayer();
ProxyPlayer* proxy_player = new ProxyPlayer(player);
proxy_player->playGame();
delete(player);
delete(proxy_player);
}