设计模式之代理模式
代理模式——ProxyPattern
代理就是真实对象的代表
代理模式的作用
- 1、远程代理:为一个对象在不同地址空间提供局部代表。
- 2、虚拟代理:若要创建一个开销很大的对象,使用代理控制创建进度。
- 3、安全代理:控制真实对象的访问权限。
- 4、智能指引:调用真实对象时,代理处理另外的事。比如记录真实对象的某个方法使用了多少次。
代理模式的结构:
- 对象接口 Subject (提供与真实对象相同的方法接口)
- 真实对象 RealSubject(继承对象接口,实现具体的方法)
- 代理对象 Proxy(继承对象接口,在其中创建真实对象,调用真实对象相应的方法)
代码实现:
对象接口 Subject
1 public interface Subject { 2 void Request(); 3 }
真实对象 RealSubject
1 public class RealSubject implements Subject { 2 @Override 3 public void Request() { 4 System.out.println("Real Request"); 5 } 6 }
代理对象 Proxy
1 public class Proxy implements Subject { 2 RealSubject realSubject; 3 @Override 4 public void Request() { 5 if(realSubject==null) realSubject=new RealSubject(); 6 realSubject.Request(); 7 } 8 }
主函数
1 public class Client { 2 public static void main(String[] args) { 3 Proxy proxy=new Proxy(); 4 proxy.Request(); 5 } 6 }
相关代码:https://github.com/lancelee98/DesignPattern/tree/master/src/ProxyPattern