• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python设计模式之代理模式实例

Python设计模式之代理模式实例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python开发实例,python脚本编写实例,python项目实例,python开发网站实例,python实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

翻墙常用的方式就是使用代理(Proxy),其基本过程如下:

浏览器<-->代理服务器<-->服务器

如果浏览器请求不到服务器,或者服务器无法响应浏览器,我们可以设定将浏览器的请求传递给代理服务器,代理服务器将请求转发给服务器。然后,代理服务器将服务器的响应内容传递给浏览器。当然,代理服务器在得到请求或者响应内容的时候,本身也可以做些处理,例如缓存静态内容以加速,或者说提取请求内容或者响应内容做些正当或者不正当的分析。这种翻墙方式,就是设计模式中代理模式(Proxy Pattern)的一个具体例子。

维基百科对代理模式做了以下解释:

基于面向过程实现的代理模式

下面是一段体现该设计模式中心的面向过程的python代码:

def proxy():
    print 'prepare....'
    hello()
    print 'finish....'

if __name__ == '__main__':
    proxy()</div>
运行结果:


基于面向对象实现的代理模式

    def __init__(self):
        pass

    def request(self):
        pass

class RealSubject(AbstractSubject):

    def __init__(self):
        pass
    def request(self):
        print 'hi, i am RealSubject'

class ProxySubject(AbstractSubject):

    def __init__(self):
        self.__rs = RealSubject()

    def request(self):
        self.__beforeRequest()
        self.__rs.request()
        self.__afterRequest()

    def __beforeRequest(self):
        print 'prepare....'

    def __afterRequest(self):
        print 'finish....'

if __name__ == '__main__':
    subject = ProxySubject()
    subject.request()
</div>

如果RealSubject的初始化函数init有参数,代理类ProxySubject可以作两种方式的修改: 第一种: ProxySubject的init方法同样也有参数,初始化代理类的时候将初始化参数传递给RealSubject。 第二种: 将ProxySubject的init方法改为:
</div>

您可能想查找下面的文章:

  • Python开发的实用计算器完整实例
  • Python只用40行代码编写的计算器实例
  • python获取当前运行函数名称的方法实例代码
  • Python类的动态修改的实例方法
  • Python中动态创建类实例的方法
  • Python类的动态修改的实例方法
  • Python中动态创建类实例的方法
  • Python正则简单实例分析
  • 利用Python获取操作系统信息实例
  • Python过滤列表用法实例分析

相关文章

  • Python中用函数作为返回值和实现闭包的教程
  • Python中正则表达式的用法实例汇总
  • Python的Django框架中TEMPLATES项的设置教程
  • 解决Python 遍历字典时删除元素报异常的问题
  • python使用reportlab画图示例(含中文汉字)
  • python入门教程之识别验证码
  • 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
  • python比较两个列表大小的方法
  • Python实现子类调用父类的方法
  • 利用PyInstaller将python程序.py转为.exe的方法详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python函数中的函数(闭包)用法实例
    • python 从远程服务器下载东西的代码
    • Python中常见的数据类型小结
    • python解析xml文件操作实例
    • python3中int(整型)的使用教程
    • 利用matplotlib+numpy绘制多种绘图的方法实例
    • Python的Django框架中的Context使用
    • Python使用爬虫猜密码
    • Python代码的打包与发布详解
    • Win7下搭建python开发环境图文教程(安装Python、pip、解释器)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有