温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何实现代理模式

发布时间:2022-01-13 16:22:33 来源:亿速云 阅读:127 作者:iii 栏目:大数据

这篇文章主要介绍了Python如何实现代理模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何实现代理模式文章都会有所收获,下面我们一起来看看吧。

效果

代理模式在保证满足利用者的基本需求的前提下引入了一定的调整空间。所谓的调整可以是处理内容的增减或者处理时机的变化。通过这种调整来满足额外的需求。

RemoteProxy增加了进程间甚至是设备间的通信,这样无论对象是否处于相同进程、线程还是设备,都可以以相同的方式进行访问。

VirtualProxy调整了实际生成对象的时机,只在对象真正必要的时候才会在内存中进行构建,从而最大限度地节约了空间。

ProtectionProxy增加了登录或者认证处理,在不改变被代理对象的前提下,实现了访问控制。

无论哪种调整,核心的功能都是不变的。

实现

一般来讲,每个实例都需要管理独立的数据,以便各自修改数据的内容。例如下面的代码:

Python如何实现代理模式

代码在构建Client实例时,每次都需要拷贝一个subject对象作为自己的数据成员。否则的话,所有的实例使用的都是同一个subject。以下是执行结果,分别表示对象创建和一个实例被修改之后的状态。

Python如何实现代理模式

首先,将Subject类的内容转移到RealSubJect中,Subject只保留定义接口的功能;然后增加一个Proxy类,只在数据发生修改时才会生成subject的拷贝。

可以看到,当内容相同时,使用相同的对象,当内容不同时,则使用不同的对象。通过代理模式,一方面节约了内容相同时额外占用的内存空间,另一方面也实现了内容不同时的独立管理。重要的是,这些都是在Client不需要意识的情况下完成的。

关于“Python如何实现代理模式”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python如何实现代理模式”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI