JAVA代理模式

来源:互联网 发布:linux权威指南 编辑:程序博客网 时间:2024/06/05 04:14

JAVA代理模式


代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。

        ---在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象在客户端和目标对象之间起到中介的作用

代理模式一般涉及到的角色有:

        ---抽象角色:声明真实对象和代理对象的共同接口
        ---代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行对象操作时,附加其他的操作,相当于对真实对象进行封装
        ---真实对象:代理角色所代表的的真实对象,是我们最终要引用的对象

Subject.java

package proxy;public abstract class Subject{     public abstract void request();}


RealSubject.java

package proxy;public class RealSubject extends Subject{@Overridepublic void request(){// TODO Auto-generated method stubSystem.out.println("From real subject");}}


ProxySubject.java

package proxy;public class ProxySubject extends Subject{private RealSubject  realSubject;//代理角色内部引用了真实角色@Overridepublic void request(){// TODO Auto-generated method stub          this.preRequest();//在真实角色操作之前所附加的操作          if(null==realSubject)          {          realSubject=new RealSubject();          }          realSubject.request();//真实角色所完成的事情          this.postRequest();//在真实角色操作之后所附加的操作}private void preRequest(){System.out.println("pre request");}private void postRequest(){System.out.println("post request");}}

Client.java

package proxy;public class Client{public static void main(String[] args){Subject subject=new ProxySubject();subject.request();}}





0 0
原创粉丝点击