在代理模式(proxy pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。
在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。
结构图
角色与理解
代理模式共分为四种角色:subject (抽象主题角色):真实主题角色与代理主题角色的共同父类,可以是具体类、抽象类、接口,客户端针对抽象主题角色编程realsubject (真实主题角色):实现具体业务方法的类,被代理主题角色调用proxy (代理主题角色):持有真实主题角色的引用,在调用真实主题角色的具体业务方法之前或者之后添加其它操作客户端面对抽象主题角色编程,调用抽象主题角色实际上调用的是代理主题角色,代理主题角色调用的是真实主题角色的方法,并在调用真实主题角色之前或者之后添加其他操作核心代码
抽象主题角色
真实主题角色
代理主题角色
客户端
Wi-Fi无线信号的“频段”和“信道”有什么区别
长安汽车发布国内首个量产L3级有条件自动驾驶系统 最高可实时获得8公里范围内的道路信息
医疗设备电磁兼容EMC的测试
详解Python项目推荐结构
水库大坝安全监测
设计模式结构性:代理模式
坤坤智能锁为您讲解全自动智能锁
短期之内纯电动汽车会早于燃料电池率先产业化和普及
基于NE555定时器的电子蜂鸣器电路
我国已有55家展会商确认将使用ExpoCore区块链技术的智能合约应用
SCL语言的Case语句如何使用以及实例
固液混合铝电解电容的特点是什么,它有哪些优势
LED 体三维显示系统的原理及特点与其设计方案
反无人机大作战:国外反无人机系统发展现状
深入了解阿里-工业大脑开放平台在2019年的“风向”
RISC-V指令集会促进未来芯片架构的发展
幸福的温度,日本美学里的人间风景
智能球的应用优势及安装注意事项
小米MIUI系统上线广告开关,可选择关闭
小米发布会在哪里看 12月28日不见不散!