您的位置:首页 > 编程语言 > C语言/C++

C++实现代理模式

2012-10-31 23:19 351 查看
/*
代理模式:为其他对象提供一种代理,以控制对这个对象的访问
Created by Phoenix_FuliMa
*/

#include <iostream>
#include <string>
using namespace std;

class Receiver
{
private:
string name;

public:
Receiver(string name):name(name)
{

}
string GetName()
{
return name;
}
};

class Subject
{
public:
virtual void display(){}
};

class Sender:public Subject
{
Receiver *someone;
public:
void SetReceiver(Receiver *someone)
{
this->someone = someone;
}
virtual void display()
{
cout<<"i hate you:" << someone->GetName()<<endl;
}
};

class Proxy:public Subject
{
public:
Subject *realobject;

void SetClient(Subject *client)
{
this->realobject = client;
}

void display()
{
realobject->display();
}
};

int main()
{
Receiver *recv = new Receiver("nobody");
Sender *obj   = new Sender;
obj->SetReceiver(recv);
Proxy  *proxy = new Proxy;
proxy->SetClient(obj);

proxy->display();

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: