码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2018-06-05 14:05:31      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:代理类   request   rri   访问   定义   bst   模式   als   静态代理   

  • 定义:为其他对象提供一种代理以控制对这个对象的访问
    • 代理模式有如下角色:
      • Subject:抽象主题类,声明真是主题与代理共同的接口方法
      • RealSubject:真实主题类,代理类所代表的真实主题。客户端通过代理类间接地调用真实主题类的方法
      • Proxy:代理类,持有对真实主题类的引用,在其所实现的接口方法中调用真实主题类中相应的接口方法执行
      • client:客户端类
  • 静态代理
    • 抽象主题类
      public abstract class Subject {
          public abstract void request();
      }
      

        

    • 真实主题类
      public class RealSubject extends Subject{
          @Override
          public void request() {
              System.out.println("realSub");
          }
      }
      

        

    • 代理类
      public class Proxy extends Subject{
          Subject mRealSubject;
          @Override
          public void request(){
      
              if (mRealSubject != null){
                  System.out.println("Proxy request");
                  mRealSubject.request();
              }
          }
      
          public Proxy(Subject mRealSubject) {
              this.mRealSubject =  mRealSubject;
          }
      }
      

        

    • 客户端类
      public class Client {
          public static void main(String[] args){
              Subject realSubject = new RealSubject();
              Subject proxy = new Proxy(realSubject);
              proxy.request();
          }
      }
      

        

  • 动态代理
  • 优缺点:

代理模式

标签:代理类   request   rri   访问   定义   bst   模式   als   静态代理   

原文地址:https://www.cnblogs.com/endian11/p/9139354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!