代理模式-

代理模式通常找到代理方来管理用户的权限访问。如下图:

cpp 复制代码
#include<string>
#include<iostream>
using namespace std;
class Video
{
public:
	virtual void  Free() = 0;
	virtual void VIP() = 0;
	virtual void  Ticket() = 0;
};
class  FixbugVideo:public Video
{
public:
	virtual void  Free() { cout << "free" << endl; }
	virtual void VIP() { cout << "VIP" << endl; }
	virtual void  Ticket() { cout << "Ticket" << endl; }
};
class FreeProxy :public Video
{
private:Video* v;
public:
	FreeProxy()
	{
		v = new FixbugVideo();
	}
	
	virtual void  Free() { v->Free(); }
	virtual void VIP() { cout << "无权限VIP" << endl; }
	virtual void  Ticket() { cout << "无权限Ticket" << endl; }
};

class VIPProxy :public Video
{
private:Video* v;
public:
	VIPProxy()
	{
		v = new FixbugVideo();
	}
	virtual void  Free() { v->Free(); }
	virtual void VIP() { v->VIP(); }
	virtual void  Ticket() { cout << "无权限Ticket" << endl; }
};


class TicketProxy :public Video
{
private:Video* v;
public:
	TicketProxy()
	{
		v = new FixbugVideo();
	}

	virtual void  Free() { v->Free(); }
	virtual void VIP() { v->VIP(); }
	virtual void  Ticket() { v->Ticket();}
};
void Look(Video* p)
{
	p->Free();
	p->Ticket();
	p->VIP();
}
int main()
{
	Video* v = new FreeProxy();
	Video* v1 = new VIPProxy();
	Video* v3 = new TicketProxy();
	Look(v);
	Look(v1);
	Look(v3);
}
相关推荐
菜鸟起航ing1 天前
设计模式---代理模式
设计模式·代理模式
且随疾风前行.1 天前
技术成神之路:设计模式(十六)代理模式
设计模式·代理模式
John_ToDebug3 天前
设计模式之代理模式
c++·设计模式·代理模式
OkeyProxy3 天前
網路本地連接沒有有效的IP配置:原因與解決方法
代理模式·proxy模式·代理服务器·海外ip代理·ip配置
weijia_kmys4 天前
前端开发之代理模式
前端·设计模式·代理模式
dgiij6 天前
mysql代理服务器
数据库·mysql·代理模式
仙魁XAN9 天前
Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】
unity·设计模式·代理模式·享元模式·外观模式·装饰者模式
赤橙红的黄10 天前
代理模式-动态代理
java·开发语言·代理模式
小羊瑞士10 天前
代理模式---静态代理和动态代理
java·代理模式
学步_技术10 天前
Python编码系列—Python代理模式:为对象赋予超能力的魔法
开发语言·python·代理模式