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

JAVA设计模式——(七)代理模式

JAVA设计模式——(七)代理模式

  • 介绍
  • 理解
  • 实现
    • 抽象主题角色
    • 具体主题角色
    • 代理类
    • 测试
  • 应用

介绍

代理模式和装饰模式还是挺像的。装饰模式是抽象类对装饰对象的实现,在继承装饰对象。代理模式则是直接对代理对象的实现。

理解

代理模式可以看成用一个类代表另一个类,使用代理类时,便会执行被代理对象的功能。

代理模式更多用于前后置条件运用等等,如权限控制、日志记录等。

实现

抽象主题角色

代理类和具体主题角色实现的接口类

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/4/25 10:11* @Contact 643947568@qq.com*/
public interface Subject {public void operate();}

具体主题角色

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/4/25 10:11* @Contact 643947568@qq.com*/
public class RealSubject implements Subject{@Overridepublic void operate() {System.out.println("执行具体操作");}
}

代理类

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/4/25 10:10* @Contact 643947568@qq.com*/
public class Proxy implements Subject{private Subject subject;public Proxy(Subject subject) {this.subject = subject;}@Overridepublic void operate() {System.out.println("前置操作");subject.operate();System.out.println("后置操作");}}

测试

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/4/24 16:33* @Contact 643947568@qq.com*/public class Main {public static void main(String[] args) {Proxy proxy = new Proxy(new RealSubject());proxy.operate();}
}

应用

权限控制
日志记录
远程访问
缓存代理:缓存对象结果,使得客户端可以共享这些结果。
同步代理:使得几个对象可以同时使用一个对象而不发生冲突。

http://www.dtcms.com/a/155142.html

相关文章:

  • 深度探索多模态数据:从声音到图像的奇妙世界
  • C++:继承机制详解
  • 「Java EE开发指南」如何使用MyEclipse的可视化JSF编辑器设计JSP?(一)
  • 【C++基础知识】C++ 模板元编程(Template Metaprogramming, TMP)技术详解
  • 欧拉安装宝塔等,报错Errors during downloading metadata for repository ‘OS‘
  • kaggle配置
  • 基于物联网的智能家居安全防护系统设计
  • WebUI可视化:第5章:WebUI高级功能开发
  • react 常用钩子 hooks 总结
  • WordPress AI 原创文章自动生成插件 24小时全自动生成SEO原创文章 | 多语言支持 | 智能配图与排版
  • Docker安装(Ubuntu22版)
  • 【Java学习日记26】:方法的重载
  • yum包管理器
  • 面试中被问到mybatis与jdbc有什么区别怎么办
  • aws(学习笔记第三十九课) iot-msk-pipeline
  • 设备接入与APP(应用程序)接入华为云iotDA平台的路径元素有哪些不同?
  • ThreadLocal详解与实战指南
  • 深入浅出Sentinel:分布式系统的流量防卫兵
  • 【uniapp】vue2 搜索文字高亮显示
  • MongoDB Shard Cluster
  • 科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
  • Kafka和flume整合
  • HOW - 如何模拟实现 gpt 展示答案的交互效果
  • Python判断语句-语法:if,if else,if elif else,嵌套,if else语句扁平式写法,案例
  • android jatpack Compose 多数据源依赖处理:从状态管理到精准更新的架构设计
  • kafka整合flume与DStream转换
  • #苍穹外卖# day 10-11
  • Move Registry 发布,实现 Sui 的超级互操作性
  • ubuntu22.04部署Snipe-IT
  • MYSQL 常用字符串函数 和 时间函数详解