• 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过滤列表用法实例分析

相关文章

  • win10系统中安装scrapy-1.1
  • 深入解析Python中的WSGI接口
  • Python标准库之随机数 (math包、random包)介绍
  • python批量修改文件后缀示例代码分享
  • Python中的元类编程入门指引
  • 更改Ubuntu默认python版本的两种方法python-> Anaconda
  • Python实现获取操作系统版本信息方法
  • Python 的描述符 descriptor详解
  • 使用Python设置tmpfs来加速项目的教程
  • python通过pil模块获得图片exif信息的方法

文章分类

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

最近更新的内容

    • Python生成随机验证码的两种方法
    • 部署Python的框架下的web app的详细教程
    • python使用三角迭代计算圆周率PI的方法
    • python 遍历字符串(含汉字)实例详解
    • Python常用模块用法分析
    • 玩转python爬虫之爬取糗事百科段子
    • python 读写txt文件 json文件的实现方法
    • Python中的自定义函数学习笔记
    • Python发送form-data请求及拼接form-data内容的方法
    • python抓取最新博客内容并生成Rss

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

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