代理模式
代理模式作用:为其他对象提供一种代理控制对这个对象的访问。
代理模式一般涉及的对象有:
抽象对象:声明真实对象和代理对象的共同基类(接口)
**真实对象:**代理对象所代表的真实对象,是我们最终要引用的对象
**代理对象:**代理对象内部含有对真实对象的引用,从而可以操作真实对象,代理对象内部还有与真实对象共有的基类(接口),可以在任何时刻都能代替真实对象。代理对象可在执行对真实对象操作时,可以附加其它操作,相当于封装。
代理种类:
远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是在本机器中,也可是在另一台机器中。远程代理又叫做大使(Ambassador)。好处是系统可以将网络的细节隐藏起来,使得客户端不必考虑网络的存在。客户完全可以认为被代理的对象是局域的而不是远程的,而代理对象承担了大部份的网络通讯工作。由于客户可能没有意识到会启动一个耗费时间的远程调用,因此客户没有必要的思想准备。
虚拟(Virtual)代理(图片延迟加载的例子):根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建。使用虚拟代理模式的好处就是代理对象可以在必要的时候才将被代理的对象加载;代理可以对加载的过程加以必要的优化。当一个模块的加载十分耗费资源的情况下,虚拟代理的好处就非常明显。<