这篇文章写的挺好的,我觉得我没必要再写了:
http://www.cnblogs.com/kid-li/archive/2006/10/18/532192.html
在程序中使用AWS API其实就是一种proxy:对于程序本身来说,使用的都是本地的API,而由API将操作转换为http请求,从而实现程序和远程的AWS服务间的交互。
看完这个模式之后可以发现proxy模式和adapter模式真的很像,只是二者目的不同而已。
adapter是为了实现在两个不同接口的对象可以互相调用,而proxy是为了加一个中间层。而proxy模式也可以修改二者的接口或屏蔽一些接口,所以实现起来二者有时没有区别。
什么时候使用proxy
A proxy, in its most general form, is a class functioning as an interface to something else. The proxy could interface to anything: a network connection, a large object in memory, a file, or some other resource that is expensive or impossible to duplicate.
关于使用proxy的场合,这里有篇文章说的还不错:
http://starnc.iteye.com/blog/370758
除文章中提到的应用外,还有一个原因: 虚拟代理 根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。
这个和网络中的proxy代理的作用是一样的。