Loading... ## 代理模式: 代理模式是 Java 开发中使用较多的一种设计模式。代理设计就是为其他对象提供一种代理以控制对这个对象的访问。 ## 实现思路: <div class="tip inlineBlock success"> 1.我们可以首先提供一个接口。 2.我们再写两个类(并且都implements继承我们提供的接口): 一个为被代理类,一个为代理类 3.被代理类中我们写真实操作的有关方法;代理类中我们声明一个被代理类的属性,在重写接口方法的代码块中我们通过(被代理属性.方法)来调用被代理类的有关操作。 </div> ## 代码示例: ```java package demo13; /** * @Author BenDangMi * @Date 2021/10/28 9:19 * @Version 1.0 */ public class Main { public static void main(String[] args) { new agentSlave(new agentMaster()).connection(); } } interface agent{ public void connection(); } //被代理人 class agentMaster implements agent{ public void connection(){ System.out.println("真实网络访问成功!"); } } //代理人 class agentSlave implements agent{ private final agent agent; public agentSlave(agent agent1){ this.agent = agent1; } private void inspection(){ System.out.println("检查网络是否正常...."); } @Override public void connection() { inspection(); agent.connection(); } } ``` ## 分类: * 静态代理(静态定义代理类) * 动态代理(动态生成代理类) JDK 自带的动态代理,需要反射等知识 ## 应用场景: * 安全代理:屏蔽对真实角色的直接访问。 * 远程代理:通过代理类处理远程方法调用(RMI) * 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象 * * 比如你要开发一个大文档查看软件,大文档中有大的图片,有可能一个图片有 100MB,在打开文件时,不可能将所有的图片都显示出来,这样就可以使用代理模式,当需要查看图片时,用 proxy 来进行大图片的打开。 最后修改:2022 年 03 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。