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

结构型设计模式之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.lqws.cn/news/122581.html

相关文章:

  • 【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
  • 代码随想录算法训练营第60期第五十七天打卡
  • Kafka消息队列
  • 《Docker》架构
  • 1.springmvc基础入门(一)
  • pytorch 与 张量的处理
  • Leetcode日记
  • 如何确定微服务的粒度与边界
  • sql server如何创建表导入excel的数据
  • 结节性甲状腺肿全流程大模型预测与决策系统总体架构设计方案大纲
  • 互联网大厂Java求职面试:云原生架构下的微服务网关与可观测性设计
  • MDP的recoders部分
  • Python基础:文件简单操作
  • .Net Framework 4/C# 属性和方法
  • 【手写系列】手写动态代理
  • C++——智能指针 weak_ptr
  • Java多线程:ThreadPoolTaskExecutor线程池 与CompletableFuture如何打出组合拳
  • Redisson - 实现延迟队列
  • [特殊字符] 深度剖析 n8n 与 Dify:使用场景、优劣势及技术选型建议
  • DA14531_beacon_大小信标设备开发
  • mysql 悲观锁和乐观锁(—悲观锁)
  • 电路设计基础-2
  • Redis-旁路缓存策略详解
  • JSON基础知识
  • Java 线程池原理详解
  • 分布式互斥算法
  • 使用ArcPy进行栅格数据分析
  • Axios 取消请求的演进:CancelToken vs. AbortController
  • rknn优化教程(一)
  • 海信IP810N-海思MV320芯片-安卓9-2+16G-免拆优盘卡刷固件包