代理模式
很多时候我们试图发送一个请求的时候,实际上是由代理将我们的请求转发给目标对象,这种代理方式叫做 正向代理 ,正向代理就是客户端的代理,我们知道访问目标的真实地址,而真实目标只知道这次请求是代理发送的却不知道背后的我们;又有些时候,我们输入某url发送一个请求,实际上这个url并非真实服务器,而是服务器的一个代理,这种代理方式叫做 反向代理 ,反向代理就是服务器的代理,我们不知道访问目标的真实地址,而只知道目标代理的地址。无论是正向代理还是反向代理,都是在实际网络中极为常用的技术,内容分发服务就是一种代理。在编程当中,代理模式也是一种很有用的程序设计模式。 1.代理模式 代理模式(Proxy Pattern),为其它对象提供一种代理以控制对这个对象的访问。 ----《大话设计模式》 这里重点是 控制 ,与装饰器模式的设计意图不同,代理模式被用作实际访问对象的接口,代理可以是任何事物的接口,比如:网络连接时,你输入一行地址,大部分时候,首先访问到的其实是代理服务,通常在代理服务器中设置有缓存,以快速响应请求而不必去请求真实服务器,而客户端感知到的效果就好像是访问到了真实服务器一样。所以,我们可以尝试理解代理中的控制,与装饰器中的装饰是不同的,代理通常是将非业务代码从业务代码中分离出来,装饰器模式则是在原有的业务代码基础上,增加额外的业务代码。另一个代理的例子是反向代理,反向代理