代理模式

定义:为其他对象提供一种代理以控制对这个对象的访问

应用创景:优化接口性能

优点:职责清晰,高扩展性,智能化

缺点:造成请求的处理速度慢,实现复杂

注意:如果使用代理模式,不能改变被代理的类的接口,使用代理模式的目的是为了加强控制

步骤:

1、代理类和被代理类有相同的父类

2、代理类内部含有被代理类的指针

3、代理类提供接口来调用背部被代理类的接口

4、外部使用时,直接使用代理类的接口来间接操作被代理类

cpp 复制代码
//1、抽象被代理类
class AbstractProxyed {
public:
	virtual ~AbstractProxyed() = default;

	//抽象接口
	virtual void doSomething() = 0;
};

//2、具体的被代理者
class Proxyed1 :public AbstractProxyed
{
public:
	void doSomething() override
	{
		cout << "我是被代理者!" << endl;
	}
};

//3、代理也要继承自被代理类,
class Proxy :public AbstractProxyed
{
public:
	Proxy(AbstractProxyed* p) :proxyed(p)
	{

	}

	//重写被代理类的接口,在这个接口中  间接调用被代理类的 接口
	void doSomething() override
	{
		cout << "我是代理者,我来代替你访问被代理者" << endl;
		proxyed->doSomething();
	}

private:
	//内部含有被代理类的指针
	AbstractProxyed* proxyed;

};

int main()
{
	//外部使用
	//1、创建被代理类
	Proxyed1* a = new Proxyed1();
	
	//2、创建他的代理类
	Proxy* proxy = new Proxy(a);

	//3、使用代理类来间接访问被代理类
	proxy->doSomething();
	
	
	return 0;
}
相关推荐
Auc249 小时前
OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
java·spring cloud·log4j·mybatis·代理模式·工厂模式
Yang三少喜欢撸铁2 天前
【阿里云免费领取域名以及ssl证书,通过Nginx反向代理web服务】
nginx·阿里云·代理模式·ssl
Blurpath2 天前
什么是静态住宅IP?为什么静态住宅IP能提高注册通过率?
网络·代理模式·ip代理·住宅ip
python算法(魔法师版)2 天前
JavaScript性能优化实战,从理论到落地的全面指南
开发语言·性能优化·前端框架·代理模式
常某某的好奇心6 天前
代理模式(Proxy Pattern)
代理模式
彬彬醤6 天前
全局网络:重构数字时代的连接范式
运维·服务器·网络·数据库·重构·代理模式
菜鸟破茧计划9 天前
穿越数据森林与网络迷宫:树与图上动态规划实战指南
网络·动态规划·代理模式
yy鹈鹕灌顶10 天前
动态规划算法精解(Java实现):从入门到精通
代理模式
帝锦_li11 天前
Java进阶--设计模式
观察者模式·单例模式·代理模式·抽象工厂模式·适配器模式·原型模式
工业甲酰苯胺14 天前
用远程代理模式轻松实现远程服务调用,打开编程新大门
代理模式