今天介绍代理模式 代理模式定义:为其他对象提供一种代理控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 下面我们看一下UML类图
public interface Subject { void method(); } public class RealSubject implements Subject { @Override public void method() { ; } } public class RealSubject implements Subject { @Override public void method() { ; } } public class Text { public static void main(String[] args) { Proxy proxy=new Proxy(); proxy.method(); } }上面即是一个简单的代理模式。 我们可以发现代理模式和装饰模式有些相似,不同点是装饰模式不改变接口的情况下动态拓展功能,代理模式是控制对象的访问,因此,当我们使用代理模式的时候,往往在一个代理类中创建一个对象的实例,当装饰模式的时候,通常的做法是将原始对象作为一个参数传递给装饰器的构造器。 本质上,装饰器模式应当为所装饰的对象提供增强功能,而代理模式对所代理对象的使用施加控制,并不提供对象本身的增强功能。