面向对象设计模式:结构型模式之代理模式
创始人
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 应用实例:糖果机

相关内容

热门资讯

王昶钱天一颜值与爱情同框 【#王昶钱天一颜值与爱情同框#】2026年2月7日,羽毛球世界冠军王昶与乒乓球名将钱天一正式官宣领证...
文旅新探|南疆慢车年味浓 时至腊月,自新疆和田开出的绿皮慢车,鸣着汽笛,缓缓开进塔里木盆地的晨雾里。这趟车从不赶时间,平日里,...
“天气瓶”里藏着数据密码?学生... 天晴时澄澈如镜,降温时结晶似羽。一只小小的天气瓶,如何能感知冷暖、诉说科学奥秘?日前,青少年人工智能...
雨果下赛季加盟萨尔布吕肯,这是... 雨果官宣加盟萨尔布吕肯。北京时间2月6日,巴西乒乓名将雨果在社交媒体宣布,将在2026-27赛季加盟...
专家解读|林坚:京津冀三地合力... 导 读近日,《现代化首都都市圈空间协同规划(2023—2035年)》(以下简称《规划》)获党中央、国...