代理模式-

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

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);
}
相关推荐
花好月圆春祺夏安9 小时前
基于odoo17的设计模式详解---代理模式
设计模式·代理模式
尤物程序猿2 天前
设计模式之代理模式--数据库查询代理和调用日志记录
设计模式·代理模式
缘来是庄2 天前
设计模式之代理模式
java·设计模式·代理模式
勤奋的知更鸟15 天前
Java 编程之代理模式
java·开发语言·设计模式·代理模式
Resurgence0319 天前
代理模式Proxy Pattern
笔记·代理模式
佛祖让我来巡山20 天前
【深入理解Spring AOP】核心原理与代理机制详解
代理模式·aop·springaop
哆啦A梦的口袋呀22 天前
基于Python学习《Head First设计模式》第十一章 代理模式
学习·设计模式·代理模式
爱喝喜茶爱吃烤冷面的小黑黑1 个月前
小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
python·langchain·代理模式
纳于大麓1 个月前
结构性-代理模式
代理模式
on the way 1231 个月前
结构型设计模式之Proxy(代理)
设计模式·代理模式