代理模式其实就是为另一个对象提供一个替身或者占位符以控制这个对象的访问,所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理其实就是代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
/**
* @author GSS
* @version 1.0
* @created 03-十月-2015 21:20:03
*/
public interface Subject {
public double calePrice();
}
/**
* @author GSS
* @version 1.0
* @created 03-十月-2015 21:20:01
*/
public class RealSubject implements Subject {
public Class2 m_Class2;
public RealSubject(){
}
public void finalize() throws Throwable {
}
public double calePrice(){
return 0;
}
}
/**
* @author GSS
* @version 1.0
* @created 03-十月-2015 21:19:58
*/
public class Proxy implements Subject {
private InvocationHandler handler;
public InvocationHandler m_InvocationHandler;
public Proxy(){
}
public void finalize() throws Throwable {
}
public double calePrice(){
return 0;
}
}
/**
* @author GSS
* @version 1.0
* @created 03-十月-2015 21:21:53
*/
public class InvocationHandler implements InvocationHandler {
private RealSubject realsubject;
public RealSubject m_RealSubject;
public InvocationHandler(){
}
public void finalize() throws Throwable {
}
public invoke(){
}
}
从上面的例子可以看出代理对象将客户端的调用委派给目标对象,在调用目标对象的方法之前跟之后都可以执行特定的操作。