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

结构型设计模式之Proxy(代理)

结构型设计模式之Proxy(代理)

前言:
代理模式,aop环绕通知,动态代理,静态代理 都是代理的一种,这次主要是记录设计模式的代理demo案例,详情请看其他笔记。

1)意图

为其他对象提供一种代理以控制对这个对象的访问。

2)结构

在这里插入图片描述

3)适用性

Poxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:

  • 远程代理(Remote Proxy)为一个对象在不同地址空间提供局部代表。
  • 虚代理(Virtual Proxy)根据需要创建开销很大的对象。
  • 保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权
    限的时候。
  • 智能引用(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。

代码:

/*** @author psd 结构性设计模式之代理模式*/
public class ProxyDemo {public static void main(String[] args) {RealSubject realSubject = new RealSubject();Proxy proxy = new Proxy(realSubject);proxy.request();}
}interface Subject{void request();
}class Proxy implements Subject{protected RealSubject realSubject;public Proxy(RealSubject realSubject){this.realSubject = realSubject;}@Overridepublic void request() {System.out.println("我是中介帮您看房.....");realSubject.request();System.out.println("我是中介看好房后对接租方和被出租方.....");}
}class RealSubject implements Subject{@Overridepublic void request() {System.out.println("我是客户要租房。。。。。");}
}
http://www.lryc.cn/news/2401424.html

相关文章:

  • 案例分享--汽车制动卡钳DIC测量
  • Redis Set集合命令、内部编码及应用场景(详细)
  • C++算法动态规划1
  • 【快速预览经典深度学习模型:CNN、RNN、LSTM、Transformer、ViT全解析!】
  • KaiwuDB在边缘计算领域的应用与优势
  • 如何避免二极管过载?
  • Vue.js组件开发系统性指南
  • React---day9
  • 设计模式 - 模板方法模式
  • 鸿蒙开发List滑动每项标题切换悬停
  • ubuntu开机自动挂载windows下的硬盘
  • C# 实现软件开机自启动(不需要管理员权限)
  • 使用 Golang `testing/quick` 包进行高效随机测试的实战指南
  • 32 C 语言字符处理函数详解:isalnum、isalpha、iscntrl、isprint、isgraph、ispunct、isspace
  • Qt实现一个悬浮工具箱源码分享
  • 线夹金具测温在线监测装置:电力设备安全运行的“隐形卫士”
  • 《TCP/IP 详解 卷1:协议》第4章:地址解析协议
  • Dify 离线升级操作手册(适用于无外网企业内网环境)
  • Windows下运行Redis并设置为开机自启的服务
  • 网络编程之网络基础
  • Spring AI(11)——SSE传输的MCP服务端
  • 计算机网络备忘录
  • Spring Boot论文翻译防丢失 From船长cap
  • [蓝桥杯]最优包含
  • NuxtJS入门指南:环境安装及报错解决
  • 在java 项目 springboot3.3 中 调用第三方接口(乙方),如何做到幂等操作(调用方为甲方,被调用方为乙方)? 以及啥是幂等操作?
  • 贪心算法应用:集合划分问题详解
  • electron下载文件
  • Neo4j 数据导入:原理、技术、技巧与最佳实践
  • 数论~~~