定义:为其他对象提供一种代理以控制对这个对象的访问。
类图:
应用场景:
1、远程代理,也就是一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
2、虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
3、安全代理,用来控制对象访问时的权限。
4、智能代理,是指当调用真实对象时,代理处理别外一些事。
优点:
1、职责清晰
真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。
2、代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。
3.高扩展性
原文:http://www.cnblogs.com/AngelAI/p/3933785.html