设计模式之代理模式

代理模式——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

原文地址:https://www.cnblogs.com/lancelee98/p/10276320.html