news 2026/4/30 16:05:10

十二、代理模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
十二、代理模式
  • 目的: 为其他对象提供一种代理以控制对这个对象的访问
  • 核心: 代理类实现与真实主题相同的接口,持有对真实主题的引用。在访问真实主题前后可以添加额外的控制逻辑(如延迟加载、访问控制、日志记录、远程代理等)。
  • 场景: 远程过程调用、虚拟代理、保护代理和缓存代理等。

首先有一个接口,声明了若干方法

packageproxy;publicinterfaceIGamePlayer{publicvoidlogin();publicvoidkillBoss();publicvoidupgrade();}

然后是被代理的类实现接口

packageproxy;publicclassGamePlayerimplementsIGamePlayer{privateStringname;publicGamePlayer(Stringname){this.name=name;}@Overridepublicvoidlogin(){System.out.println(this.name+" 登录成功!");}@OverridepublicvoidkillBoss(){System.out.println(this.name+" 在打怪!");}@Overridepublicvoidupgrade(){System.out.println(this.name+" 升级了!");}}

最后的代理类,也实现接口,并持有接口的引用

packageproxy;publicclassGamePlayerProxyimplementsIGamePlayer{privateIGamePlayergamePlayer;// 持有真实主题的引用publicGamePlayerProxy(IGamePlayergamePlayer){this.gamePlayer=gamePlayer;// 通过构造函数传入真实对象}@Overridepublicvoidlogin(){// 可以在调用前后添加额外逻辑System.out.println("代理:正在验证身份...");this.gamePlayer.login();}@OverridepublicvoidkillBoss(){System.out.println("代理:记录打怪行为...");this.gamePlayer.killBoss();// 玩家击杀boss}@Overridepublicvoidupgrade(){this.gamePlayer.upgrade();// 玩家升级System.out.println("代理:升级完成,记录日志。");}}

函数入口

packageproxy;publicclassMainTest{publicstaticvoidmain(String[]args){// 通过构造函数传入真实对象IGamePlayerproxy=newGamePlayerProxy(newGamePlayer("张三"));proxy.login();proxy.killBoss();proxy.upgrade();}}

终端输出:

代理:正在验证身份... 张三 登录成功! 代理:记录打怪行为... 张三 在打怪! 张三 升级了! 代理:升级完成,记录日志。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 17:16:04

【HarmonyOS 6.0】屏幕管理新特性:多屏坐标转换详解

文章目录1 -> 概述2 -> 核心接口详解2.1 -> 接口声明与版本说明2.2 -> Position类型2.3 -> RelativePosition类型2.4 -> display.getDisplayByIdSync2.5 -> display.convertRelativeToGlobalCoordinate3 -> 典型应用场景3.1 -> 折叠屏设备跨屏窗口移…

作者头像 李华
网站建设 2026/4/16 20:26:33

输入URL之后,都发生了什么

前言 当我们在浏览器导航栏输入URL(网址)之后,按下回车enter就会跳转到这个页面。 从输入URL开始,后面都发生了什么? 让我们聚焦 “浏览器地址栏输入 URL 并回车” 这一日常操作,拆解背后从网络解析到页…

作者头像 李华
网站建设 2026/4/17 3:45:54

2026届毕业生推荐的六大降AI率方案推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要降低AIGC特征,得从语言习惯以及结构设计着手。别用常见的模板句式,…

作者头像 李华
网站建设 2026/4/16 1:30:21

内核调试技术全攻略:从printk到KGDB

一、顶级架构一句话总结 printk(日志) → 动态调试 → ftrace(跟踪) → kprobes(探针) → KGDB(调试器) 内核调试是驱动开发中定位问题、分析性能的核心技能。二、printk调试 日志级…

作者头像 李华
网站建设 2026/4/13 19:58:50

Arduino无线传感器网络自适应传输周期库

1. 项目概述AdaptiveTXWSN 是一款专为无线传感器网络(Wireless Sensor Network, WSN)节点设计的轻量级 Arduino 库,其核心目标是实现基于电池电压状态的自适应传输周期调控。在典型的 WSN 部署场景中,节点往往由不可更换的纽扣电池…

作者头像 李华