Java之代理模式 (Proxy Pattern)

1.概念

为其他对象提供一种代理以控制对这个对象的访问。

2.UML图:

3.代码:

//抽象角色:
public abstract class Subject
{      
      abstract public void request();
}

//真实角色:实现了Subject的request()方法。
public class RealSubject extends Subject
{
      public void request()
     {
            System.out.println("From real subject.");
       }
} 

//代理角色:
public class ProxySubject extends Subject
{
      private RealSubject realSubject; //以真实角色作为代理角色的属性 
      public void request() //该方法封装了真实对象的request方法
     { 
          if( realSubject == null )
   {
                realSubject = new RealSubject();
          }
          realSubject.request(); //此处执行真实对象的request方法 
       }
}

//客户端调用:
Subject sub=new ProxySubject();
Sub.request();

4.应用场景:

代理服务器

 --------------------------------------------------------------------

PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

--------------------------------------------------------------------

posted on 2011-12-26 17:33  Devin Zhang  阅读(1049)  评论(0编辑  收藏  举报