设计模式
定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 其中代理类能在原来对象行为的基础上增加额外的行为,甚至可以完全替换原来的行为。代理模式主要可以分为两种:一个是静态代理,一个是动态代理 静态代理 中代理类中需要手动的处理被代理对象中的所有行为,即使这个行为我们不希望做任何改变,也需要编写这个行为并直接调用被代理对象的行为。被代理的对象是固定的,这种代理是死的,在编译期的时候就生成了一个不可改变的代理类,以下是静态代理的一个基本类图 其中RealSubject为需要被代理的类;Proxy即为用来代理RealSubject的代理类,Proxy中保存一个RealSubject类的引用,这样可以访问被代理对象的行为;Subject定义了RealSubject和Proxy共用的接口,这样我们可以将任何使用RealSubject类的地方都可以替换为Proxy。来看下具体的代码 Subject接口 public interface Subject { void request(); } RealSubject类 public class RealSubject implements Subject { @Override public void request() { System