代理模式

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

应用创景:优化接口性能

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

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

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

步骤:

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;
}
相关推荐
柒.梧.5 天前
Java代理模式精讲:静态代理+JDK动态代理
java·开发语言·代理模式
Forget_85506 天前
RHEL——HAProxy模式
代理模式
mjhcsp9 天前
C++ 树形 DP解析
开发语言·c++·动态规划·代理模式
不想看见4049 天前
House Robber 基本动态规划:一维--力扣101算法题解笔记
笔记·算法·leetcode·代理模式
忘梓.12 天前
解锁动态规划的奥秘:从零到精通的创新思维解析(10)
c++·算法·动态规划·代理模式
HEU_firejef14 天前
设计模式——代理模式
设计模式·代理模式
香芋Yu15 天前
【强化学习教程——01_强化学习基石】第03章_动态规划与策略迭代
算法·动态规划·代理模式
J_liaty23 天前
23种设计模式一代理模式
设计模式·代理模式
短剑重铸之日24 天前
《设计模式》第九篇:三大类型之结构型模式
java·后端·设计模式·组合模式·代理模式·结构性模式
B2_Proxy25 天前
如何使用代理服务解决“您的 ASN 被阻止”错误:全面策略分析
网络·爬虫·网络协议·tcp/ip·安全·代理模式