设计模式之代理模式

Posted lancelee98

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之代理模式相关的知识,希望对你有一定的参考价值。

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

 

以上是关于设计模式之代理模式的主要内容,如果未能解决你的问题,请参考以下文章

Spring之代理模式

#yyds干货盘点# 设计模式之代理模式:动态代理

设计模式之代理模式(Proxy)详解及代码示例

代理模式之静态代理实现代码

设计模式之代理模式

设计模式之代理模式