代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。
即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。比如我们在租房子的时候会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。
代理模式是隐藏被代理对象的复杂实现(直接持有被代理对象的实例),偏向于委托类的访问限制(比如你去找房子,但是你不熟悉,那就找熟悉的人帮你找(代理))
先来看看关系图:
根据上文的阐述,代理模式就比较容易的理解了,我们看下代码:
//代理类(proxy class)可以对它的客户隐藏一个对象的具体信息
public interface Sourceable {
public void method();
}
public class Source implements Sourceable {
@Override
p