代理模式概述
代理模式是java开发中使用较多的一种设计模式,代理设计就是为其他对象提供一种代理以控制对这个对象的访问。
理论概述讲的比较抽象,在这里举个栗子:假设你工作了,要组一个房子,但是你有没有空去找,然后你就找到了租房中介,你只需要把你要找的类型告诉中介,中介就会帮你找到一些,推送给你你再从中挑选。这差不多就是一个代理模式,还有明星与经纪人也是一种代理关系。这里的中介就是一个代理类,你就是被代理类,你要找房子的这件事就是一个接口。
理论还是比较抽象,下面是一段简单的代码示例:
package proxy; /** * 接口的应用: * 1.代理模式的简单示例; * * @author Gary * @time 2019年8月9日 */ public class ProxyTest { public static void main(String[] args) { // 创建一个用户对象并实例化 Server server = new Server(); // 创建一个代理人 ProxyServer proxy = new ProxyServer(server); proxy.surf(); } } // 定义一个接口 interface NetWork { public void surf(); } //被代理类 class Server implements NetWork{ @Override public void surf() { System.out.println("真实用户联网\t"); } } //代理类 class ProxyServer implements NetWork { // 声明一个接口对象 private NetWork work; // 构造方法,可以传入一个真实的用户 public ProxyServer(NetWork work) { this.work = work; } public void check() { System.out.println("联网前的检查工作\t"); } //1、代理类中的接口实现方法不是自己调用,而是调用一个接口对象,采用接口回调的方式让真实用户调用接口的方法 @Override public void surf() { check(); work.surf(); } }