0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设计模式结构性:代理模式

冬至子 来源:码农架构 作者:小智 2023-06-09 15:27 次阅读

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。

在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

结构图

图片

角色与理解

  • 代理模式共分为四种角色:
  • Subject (抽象主题角色):真实主题角色与代理主题角色的共同父类,可以是具体类、抽象类、接口,客户端针对抽象主题角色编程
  • RealSubject (真实主题角色):实现具体业务方法的类,被代理主题角色调用
  • Proxy (代理主题角色):持有真实主题角色的引用,在调用真实主题角色的具体业务方法之前或者之后添加其它操作
  • 客户端面对抽象主题角色编程,调用抽象主题角色实际上调用的是代理主题角色,代理主题角色调用的是真实主题角色的方法,并在调用真实主题角色之前或者之后添加其他操作

核心代码

  • 抽象主题角色

图片

  • 真实主题角色

图片

  • 代理主题角色

图片

  • 客户端

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5963

    浏览量

    108712
  • Proxy
    +关注

    关注

    0

    文章

    6

    浏览量

    7420
  • pattern
    +关注

    关注

    0

    文章

    6

    浏览量

    9582
收藏 人收藏

    评论

    相关推荐

    适配器模式代理模式的区别

      代理模式  组成:  抽象角色:通过接口或抽象类声明真实角色实现的业务方法。  代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的
    发表于 10-22 15:17

    优化电动汽车的结构性

    优化电动汽车的结构性能以提高效率和安全迅速增长的全球电动汽车(EV)市场预计到2027年将达到8028亿美元。在电池和高压电子设备的驱动下,电动汽车的运行和维护成本往往低于传统汽车,几乎不会产生
    发表于 09-17 08:10

    超级大电容模式结构框图

    超级大电容模式结构框图 超级电容模式是针对以上两种结构的局限而产生的,因为前两种结构的最大输出电流受到电池使用规格的限制。如果假定
    发表于 01-04 18:28 1258次阅读
    超级大电容<b class='flag-5'>模式</b><b class='flag-5'>结构</b>框图

    STM32的结构和启动模式

    STM32的结构和启动模式需要的来下载哦。
    发表于 03-31 17:36 46次下载

    适配器模式、装饰器模式代理模式的区别

    适配器模式、装饰器模式代理模式都属于设计模式中的结构型模式
    发表于 10-18 15:53 1.6w次阅读
    适配器<b class='flag-5'>模式</b>、装饰器<b class='flag-5'>模式</b>、<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的区别

    适配器模式代理模式的区别

    适配器模式:适配器模式有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。代理模式:为其他对象提供一种代理以控制对这个对象的访问。
    发表于 01-12 11:56 5158次阅读
    适配器<b class='flag-5'>模式</b>和<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的区别

    设计模式结构型模式

    结构型模式一、适配器模式(一)定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独
    发表于 11-06 17:51 1次下载
    设计<b class='flag-5'>模式</b>之<b class='flag-5'>结构型模式</b>

    GoF设计模式代理模式

    它是一个使用率非常高的设计模式,在现实生活中,也是很常见。比如,演唱会门票黄牛。假设你需要看一场演唱会,但官网上门票已经售罄,于是就当天到现场通过黄牛高价买了一张。在这个例子中,黄牛就相当于演唱会门票的代理,在正式渠道无法购买门票的情况下,你通过
    的头像 发表于 10-17 09:45 617次阅读

    设计模式结构性:适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
    的头像 发表于 06-07 11:56 569次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:适配器<b class='flag-5'>模式</b>

    设计模式结构性:组合模式

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。
    的头像 发表于 06-08 10:34 1084次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:组合<b class='flag-5'>模式</b>

    设计模式结构性:桥接模式

    桥接模式不是将两个不相干的类链接,而是将一个需要多维度变化的类拆分成抽象部分和实现部分,并且在抽象层对两者做组合关联,是用组合的方式来解决继承的问题。
    的头像 发表于 06-08 10:49 525次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:桥接<b class='flag-5'>模式</b>

    设计模式结构性:门面模式

    门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。
    的头像 发表于 06-08 14:28 516次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:门面<b class='flag-5'>模式</b>

    设计模式结构性:享元模式

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。
    的头像 发表于 06-08 17:32 590次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:享元<b class='flag-5'>模式</b>

    装饰器模式代理模式的区别

    什么是装饰器模式 装饰器模式(Decorator Pattern): 在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责; 感觉和继承如出一辙,不改变父类,子类可拓展功能; 优点 装饰
    的头像 发表于 10-08 14:25 497次阅读
    装饰器<b class='flag-5'>模式</b>和<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的区别

    设计模式代理模式的使用场景

    官方定义: 代理模式 (Proxy Pattern) 是一种结构型设计模式,通过代理对象控制对原对象的访问,并允许在访问前或访问后做一些处理
    的头像 发表于 10-08 14:34 399次阅读
    设计<b class='flag-5'>模式</b>中<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的使用场景