概念:
为其他对象提供一种代理以控制对这个对象的访问。(代理就是真实对象的代表)
实现方式:代理类和实体类实现相同的接口,在代理类中保存一个对实例类的引用。
应用场景:
1、远程代理 —— 为一个对象在不同的地址空间提供一个代表,隐藏一个对象存在于不同地址空间的事实。(webservice的远程调用)
2、虚拟代理 —— 根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的对象。(大型网页的加载)
3、安全代理 —— 控制真是对象访问时的权限。
4、智能引用 —— 调用真实对象时,代理处理另外的事情。