什么是代理模式?
为其他对象提供一种代理以控制对这个对象的访问。
核心要点:
1, 代理模式是通过创建一个代理对象,用这个代理对象去代表真实的对象,客户端得到这个代理对象过后,直接当真实对象去操作。
2,代理对象是处在客户端与被代理的真实对象中间,相 当于一个中转,那么在中转的时候,可以做很多操作,代理模式的功能也主要是通过在中转的时候进行实现,
比如在中转前后附加很多操作等。
3,代理分成很多种类,开发中最常用的是虚代理和保护代理。
虚代理:刚开始创建一个‘虚’代理对象返回给客户端,直到客户端要真正使用这个对象的时候,代理才真正去创建这个对象。从而变相实现一个延迟装载,节省资源。
保护代理是一种控制对原始对象访问的代理。保护代理会检查调用者是否具有请求所必须的访问权限,如果没有相应的权限,那么就不会调用目标对象,从而实现对 目标对象的保护。
4,Java中的静态和动态代理,不过java的动态代理目前只能代理接口,基本的实现是依靠java的反射机制和动态生成class的技术来动态生成被代理的接口的实现对象。
代理模式的本质是控制对象访问。
1,需要为一个对象在不同的地址空间提供局部代表的时候,可以使用远程代理。
2,需要按照需要创建开销很大的对象的时候,可以使用虚代理。
3,需要控制对原始对象的访问的时候,可以使用保护代理。
4,需要在访问对象的时候执行一些附加操作的时候,可以使用智能指引代理。