代理模式主要使用的是静态代理。
设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问.
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
例如:一个显示图片的选项卡程序,每一个选项卡显示一幅图片,在任何一个时刻,只有一个选项卡被选中,因此在没有选中的选项卡中的图片就没有必要被创建,使用一个图片的代理对象代理这个图片,只要在客户端程序要求显示这个图像时才真正创建该图像,在代理对象中必须存储被代理对象的所有的信息。
总结:Proxy模式在访问对象是引入了一定程度的间接性,根据代理的类型,附加的间接性有多种用途:
1. Remote Proxy可以隐藏一个对象存在于不同抵制空间的事实。
2. Virtual Proxy可以进行最优化,例如根据要求创建对象。
3. Protection Proxies和Smart Reference都允许在访问一个对象时有一些附加的内务处理。