当前位置: 首页 > ops >正文

代理模式:控制对象访问

为其他对象提供一种代理以控制对这个对象的访问(如延迟加载、权限校验)。

代码示例:

// 1. 抽象接口
interface Image {void display();
}// 2. 真实对象(高开销)
class RealImage implements Image {private final String filename;public RealImage(String filename) {this.filename = filename;loadFromDisk(); // 模拟高成本操作}private void loadFromDisk() {System.out.println("正在加载图像: " + filename);}@Overridepublic void display() {System.out.println("显示图像: " + filename);}
}// 3. 代理类(控制访问)
class ProxyImage implements Image {private RealImage realImage;private final String filename;public ProxyImage(String filename) {this.filename = filename;}@Overridepublic void display() {if (realImage == null) {realImage = new RealImage(filename); // 延迟加载}realImage.display();}
}// 客户端调用
public class Client {public static void main(String[] args) {Image image = new ProxyImage("photo.jpg");image.display();}
}

 

使用场景:虚拟代理(延迟加载大文件)、保护代理(权限控制)、远程代理(网络请求封装)

优点:解耦客户与真实对象;增强安全性/性能

缺点:可能增加响应延迟;代码复杂度提高 

http://www.xdnf.cn/news/15330.html

相关文章:

  • Spring AI 项目实战(十七):Spring Boot + AI + 通义千问星辰航空智能机票预订系统(附完整源码)
  • 无缝衔接直播流体验
  • 数据结构 单链表(1)
  • Acrobat 表单中的下拉菜单(附示例下载)
  • ESP-Timer入门(基于ESP-IDF-5.4)
  • 插入类排序的C语言实现
  • Java小白-设计模式
  • C#单例模式管理全局变量
  • OSPF与BGP的联动特性实验案例
  • OSPF与BGP的联动特性
  • Java设计模式之行为型模式(命令模式)
  • 单例模式:确保全局唯一实例
  • Vue文件上传实战指南
  • 【OpenGL 渲染器开发笔记】1 为什么要设计渲染器?
  • Dubbo-Admin 安装与使用指南:可视化管理 Dubbo 服务
  • 初识drag2框架,drag2注入的基本原理
  • 常用的docker命令备份
  • k8s:0/1 nodes are available: pod has unbound immediate PersistentVolumeClaims.
  • 论文Review 3DGSSLAM GauS-SLAM: Dense RGB-D SLAM with Gaussian Surfels
  • 使用python操作文件夹
  • Hashtable 与 HashMap 的区别笔记
  • [GWCTF 2019]我有一个数据库
  • 05.判断日期是工作日还是周末
  • 改进广告投入与销售额预测分析
  • JavaSE-多态
  • 从架构到代码:飞算JavaAI电商订单管理系统技术解构
  • [CH582M入门第六步]软件IIC驱动AHT10
  • 算法题(174):全排列问题
  • 归并排序递归法和非递归法的简单简单介绍
  • 运放压摆率?正弦波怎么输出了三角波?