面向对象设计模式:结构型模式之代理模式
创始人
2024-05-29 13:46:43

一、引入

  • 访问 FB:代理服务器
    在这里插入图片描述

二、代理模式

aka Surrogate

2.1 Intent 意图

  • Provide a surrogate (代理) or placeholder for another object to control access to it. 为另一个对象提供一个代理或占位符,以控制对它的访问。
  • 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用

2.2 Motivation 动机

One reason for controlling access to an object is to defer the full cost of its creation and initialization until we actually need to use it.
控制对对象的访问的一个原因是要延迟其创建和初始化的全部成本,直到我们实际需要使用它为止。即只在必要时生成开销大的对象。
Example:
An image proxy creates the real image only when the document editor asks it to display itself. The proxy forwards subsequent requests directly to the image.
只有在文档编辑器要求其显示图像时,图像代理才会创建真实的图像,代理会将后续请求直接转发到图像。

在这里插入图片描述

2.2 Applicability 适用性

  • A remote proxy provides a local representative for an object in a different address space. 远程代理为一个不同地址空间中的对象提供了一个本地代表.

  • A virtual proxy creates expensive objects on demand. 虚拟代理在必要时创建开销大的对象.

  • A protection proxy controls access to the original object. 保护代理可控制对原始对象的访问.

  • A smart reference is a replacement for a bare pointer that performs additional actions when an object is accessed. 在访问对象时,可以执行其他操作的智能引用是裸指针的替代品。

    • counting the number of references to the real object so that it can be freed automatically when there are no more references (smart pointers).
    • loading a persistent object into memory when it’s first referenced.
    • checking that the real object is locked before it’s accessed to ensure that no other object can change it.

2.3 类图

在这里插入图片描述

2.4 Consequences 重要性

  • 远程代理:隐藏对象位于不同地址空间中的事实
  • 虚拟代理:优化,仅需要时才创建对象
  • 保护代理 & 智能引用:提供额外功能,如访问控制
  • Copy-on-write 写时复制:Copying a large and complicated object can be an expensive operation. If the copy is never modified, then there’s no need to incur this cost. By using a proxy to postpone the copying process, we ensure that we pay the price of copying the object only if it’s modified.

2.5 应用实例:糖果机

相关内容

热门资讯

2025年中国国家高新区园区生... 中新社北京4月10日电 (记者 刘亮)中国工业和信息化部10日公布,2025年中国国家高新区园区生产...
粤宏远A十大流通股东格局生变:... 4月10日消息,粤宏远A公告显示,截止2025年12月31日,相较于上一报告期,十大流通股东发生了以...
比特币熊市“大清洗”:超20个... 来源:@华夏时报微博华夏时报记者 赵奕 上海报道当市场的潮水退去,才知道谁在裸泳。近日,Base生态...
北京海淀发布八条OPC举措 最... 格隆汇4月10日|据央视,2026中关村人工智能OPC生态大会在北京海淀举行,大会以“AI重构生产力...
创业板指创2021年底以来收盘... .app-kaihu-qr{text-align: left;padding: 20px 0;}.a...