为其余对象提供一种代理以控制对这个对象的访问html
通俗的来说代理模式就是咱们生活中常见的中介python
代理模式在平常生活中很常见,好比,你去杂货店买一个插座,而不是去生产插座的工厂去买。再好比,你去访问某个网站,你并无访问权限,但你能够经过代理去访问这个网站,而后代理再把内容传给你。安全
在某些状况下,一个对象不适合或者不能直接引用另外一个对象,而代理对象能够在客户端和目标对象之间起到中介的做用网站
代理模式有3个必要的元素:spa
真实的对象(执行业务逻辑,被代理的对象).net
代理类(用户请求的一个接口,对真实目标的保护)线程
用户(获取任务的用户请求)3d
1.远程代理,也就是为一个对象在不一样的地址空间提供局部表明。这样能够隐藏一个对象存在于不一样地址空间的事实。代理
2.虚拟代理,是根据须要建立开销大的对象。经过它来存放实例化须要很长时间的真是对象。用于惰性求值,将一个大计算量对象的建立延迟到真正须要的时候进行。例如html中,图片须要load好久,因此经过虚拟代理来代替真实的图片htm
3.安全代理,或叫保护/防御代理:控制对敏感对象的访问。用来控制真实对象访问时的权限
4.智能(引用)代理:在对象被访问时执行额外的动做。此类代理的例子包括引用计数和线程安全检查。是指当调用真实的对象时,代理处理另一些事
代理模式主要使用了Python的多态和继承,干活的是被代理类,代理类主要是接活,你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,你们知根知底,你能作啥,我能作啥都清楚得很,一样一个(基类)接口。
参考
https://www.cnblogs.com/Xjng/p/3878839.html 111
https://www.cnblogs.com/lizhitai/p/4476091.html
https://cloud.tencent.com/developer/news/394367
https://blog.csdn.net/liuskyter/article/details/80362722
https://www.cnblogs.com/onepiece-andy/p/python_proxy_pattern.html
https://blog.csdn.net/ruguowoshiyu/article/details/80967560