Proxy(代理)-对象结构型模式(接口的代理对象)
haoteby 2025-06-08 21:13 1 浏览
1.意图
为其它对象提供一种代理以控制对这个对象的访问。
2.别名
Surrogate.
3.动机
通过Proxy可以达到对一个对象的访问控制。
4.适用性
- 远程代理 为一个对象在不同地址空间提供局部代表。
- 虚代理 根据需要创建开销很大的对象。
- 保护代理 控制对原始对象的访问。
- 智能指引 取代了指针,它在访问对象时执行一些附加操作。
5.结构
6.代码实例
//Subject.h #include <memory> class Subject { public: virtual void Request = 0; }; class RealSubject : public Subject { public: void Request; }; class Proxy : public Subject { public: Proxy; void Request; private: std::shared_ptr<Subject> m_pSubject; };
//Subject.cpp #include <iostream> #include "Subject.h" void RealSubject::Request { std::cout<<"RealSubject Request Exectued" << std::endl; } Proxy::Proxy { m_pSubject = std::shared_ptr<Subject>(new RealSubject); } void Proxy::Request { m_pSubject->Request; }
//Client.cpp #include "Subject.h" int main { std::shared_ptr<Subject> pProxy(new Proxy); pProxy->Request; while(1); }
7.测试结果
8.效果
- 远程代理 可以隐藏一个对象存在于不同地址空间的事实。
- 虚代理 可以进行最优化,例如根据要求创建对象。
- 保护代理和智能引用 都允许在访问一个对象时有一些附加的内务处理。
相关推荐
- “你的朋友宁愿听你吐槽,也不想参加你的葬礼”
-
来源:这里是美国嗨,最近过得还好吗?美国君今天在逛论坛时刷到了一条很热的帖子,了解完背后的故事后顿时觉得很治愈,想分享给大家~今天立冬,希望这些也可以温暖到你们的冬天这是一个组织在伦敦一座桥上立的一块...
- 浏览器代理插件Proxy SwitchyOmega安装与使用
-
个人博客:无奈何杨(wnhyang)个人语雀:wnhyang共享语雀:在线知识共享Github:wnhyang-OverviewProxySwitchyOmega轻松快捷地管理和切换多个代理设置...
- 可靠的IP代理网站大盘点,你用过哪些?
-
在互联网时代,IP代理成为了很多企业和个人必不可少的工具。无论是为了提升网络安全,还是进行数据抓取,选择一个可靠的IP代理服务至关重要。本文将为大家盘点几家可靠的IP代理网站。1.711Proxy...
- 三层交换机Super vlan技术Arp-proxy转发收藏
-
一、作用隔离广播风暴防止病毒攻击控制端口二层互访二、用户需求用户多vlan多IP地址是同一个网段,实现彼此之间二层隔离个别VLAN之间有互访的需求(需要用到对应的subvlan开启ARP代理)...
- ShardingSphere-Proxy分库分表以及多租户安装使用
-
需求:你提供SAAS服务,你有你有2个租户(商户),各自的数据进各自的库,而你不希望你的微服务java里默认配置多个租户数据源,数据连接池太多,而且后面动态增加也不方便,诸如此类很多问题。...
- nginx proxy_pass 头信息处理(nginxproxypass原理)
-
简介有些应用需要验证请求和响应的头部信息。而现在的架构基本都会在前端使用nginx进行转发。如果没有处理头部信息,就会导致信息丢失,无法通过验证,出现403等请求异常的情况。...
- Proxy-Lite实战:3步部署+2个案例,轻松掌握轻量级网页自动化
-
大家好,我是何三,80后老猿,独立开发者一、Proxy-Lite模型概述...
- Telegram代理指南:好处及设置步骤
-
Telegram是一款广受欢迎的通讯软件,它能让你和世界各地的用户进行交流。然而想要访问Telegram却受到限制怎么办?Telegram代理是一个完美的解决方案,它不仅能帮助用户绕过地理限制,还能提...
- 会Python?那么你一定要试一试mitmproxy
-
mitmproxy是一款工具,也可以说是python的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用。和...
- IP地址与DNS是什么?搞懂它们,网络再也不卡!
-
今天聊聊很多人都会遇到的一个基础问题:IP地址和DNS。虽然这两个名词在我们日常上网时经常听到,但很多人可能对它们的具体含义和作用并不清楚。别担心,看完这篇文章你就能搞懂它们的区别和作用!IP地址,简...
- 十五张图带你快速入门 shardingsphere-proxy
-
ApacheShardingSphere是一款分布式的数据库生态系统,它包含两大产品:...
- 好玩的Docker之“NginxProxyManager”自动申请SSL证书教程
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:BIGWEI1992前言:本人一个非著名不专业的业余玩家,也是靠着经常看各种大佬的视频教程学习进步。把自己学习到的一些知识,利用业余时间出一...
- Proxy 与 Object.defineProperty 优劣对比?
-
答:1:Proxy的优势:Proxy可以代理整个对象,而Object.defineProperty只能代理对象的某个属性...