news 2026/2/27 23:17:24

c++设计模式-代理模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c++设计模式-代理模式

一、模式简介

代理模式是一种结构型设计模式,通过引入代理对象(Proxy),实现客户端(Client)间接访问主题对象(Subject)。

优势:

代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;
代理对象可以扩展目标对象的功能;
代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度;

二、模式概念

1.Subject(抽象对象):定义了真实对象和代理对象的共同接口。
2.RealSubject(真实对象):即被代理对象,定义了真正需要被代理的业务逻辑。
3.Proxy(代理对象):客户端与真实对象之间的中介,通过该对象访问真实对象。

三、代码实现

#include<iostream>usingnamespacestd;//抽象类classSubject{public:Subject(){}virtualvoidrequest()=0;//纯虚函数};classRealSubject:publicSubject{public:RealSubject(){}voidrequest(){cout<<"RealSubject request"<<endl;}};classProxy:publicSubject{private:Subject*realSubject;public:Proxy(){realSubject=newRealSubject();}~Proxy(){deleterealSubject;}voidrequest(){realSubject->request();}};intmain(){cout<<"this is proxy pattern"<<endl;Proxy proxy;proxy.request();return0;}

四、运行结果

this is proxy pattern RealSubject request
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 14:16:59

AIDL Hal 开发笔记4----驱动开发

目录一、编写Linux 内核驱动1.1 编写驱动1.2 将模块编译进内核二、Native 程序测试驱动程序三、权限配置驱动开发 一、编写Linux 内核驱动 1.1 编写驱动 Linux 驱动实际就是一个 Linux 内核模块。 首先&#xff0c;我们需要理解什么是内核模块&#xff1f;简单来说&#x…

作者头像 李华
网站建设 2026/2/26 15:48:32

导师推荐!MBA开题报告TOP8 AI论文写作软件测评

导师推荐&#xff01;MBA开题报告TOP8 AI论文写作软件测评 2026年MBA开题报告写作工具测评&#xff1a;精准选择&#xff0c;提升效率 随着AI技术的不断进步&#xff0c;越来越多的MBA学生开始借助智能写作工具来提高论文写作效率。然而&#xff0c;面对市场上琳琅满目的AI论文…

作者头像 李华
网站建设 2026/2/15 0:18:54

CAD协作更高效!浩辰CAD看图王电脑版能看视频批注了

CAD图纸遇到问题&#xff0c;沟通起来不方便&#xff0c;视频批注功能就能完美解决这一问题&#xff0c;哪里有问题拍视频记录下来&#xff0c;批注在相应的位置&#xff0c;既清楚又明白&#xff0c;沟通省时省力。 浩辰CAD看图王&#xff08;手机版&#xff09;目前已新增视…

作者头像 李华
网站建设 2026/2/23 20:54:59

Docker Swarm ES集群基本维护

文章目录 一、运维视角:集群状态与监控(1-5) 例1:查看 ES 集群健康状态(核心运维) 例2:查看集群所有节点信息 例3:查看集群基本信息(版本、名称) 例4:查看集群所有索引列表 例5:查看节点 JVM 内存使用情况 二、开发+运维:索引基础操作(6-9) 例6:创建自定义索引…

作者头像 李华
网站建设 2026/2/25 15:22:55

关于单元测试编写原则的一些思考

目的 单元测试编写的目的&#xff0c;是面向计算机特性的&#xff0c;基于函数的in-out&#xff0c;所以单元测试的好帮手就是断言&#xff0c;通过不断的构造输出并对结果进行断言&#xff0c;我们就可以针对一个对象以及它的函数&#xff0c;构建出充足的用例去包裹它&#…

作者头像 李华
网站建设 2026/2/24 16:32:07

前端项目打包部署完整流程

1. 环境准备确认项目为 Vue.js 前端项目已安装 Node.js (> 14.0.0) 和 npm (> 6.0.0)项目依赖已安装 (node_modules)2. 选择打包环境根据部署环境选择对应的打包命令:测试环境: npm run build:test生产环境: npm run build:prod3. 执行打包# 进入项目目录 cd web-master-…

作者头像 李华