百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python设计模式:代理模式(python代理ip怎么用)

off999 2024-10-27 11:57 48 浏览 0 评论

前言

前期分享过几篇关于 Python 实现各种设计模式的文章,包含:
观察者模式:Python设计模式:观察者模式
原型模式:Python设计模式:原型模式
门面模式:Python设计模式:门面模式
工厂方法模式:Python设计模式:工厂方法模式
简单工厂模式:Python设计模式:简单工厂模式
今天继续给大家分享设计模式的内容,今天的主题是:Python 如何实现代理模式。


代理模式

1、定义
提到代理这个词汇,应该很多人都不陌生,甚至会有很多人用过。互联网的我们,应该接触的比较多的代理主要是在网络通信方面。

例如:
我们不能直接访问Google、Facebook 等网站,但是可以通过搭建代理服务器的方式实现我们所用的网络与目标主机之间的通信,这就是网络中代理的概念。

其实用一句话来概括代理的含义就是:
允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。

或者是指一个介于寻求方和提供方之间的中介系统或者说是一种模式。


2、使用场景
代理模式使用的场景比较多,例如:
1.它能够以更简单的方式表示一个复杂的系统。
2.它可以使实际对象的安全性更高。
3.它可以为不同服务器上的远程对象提供本地的接口。
4.它可以为消耗大量内存的对象提供一个轻量级的句柄。


代码实现

 1import time
 2import datetime
 3from abc import ABC,abstractmethod
 4
 5
 6#定义一个User类,用于模拟登录操作
 7class User:
 8    def __init__(self, username, password):
 9        self.username = username
10        self.password = password
11
12    def get_user_username(self):
13        return self.username
14
15    def get_user_password(self):
16        return self.password

1、定义业务抽象接口类

1class Bussiness(ABC):
2    @abstractmethod
3    def request(self):
4        pass
5
6    @abstractmethod
7    def deal(self):
8        pass

2、定义核心业务逻辑类,来现实Bussiness的抽象类定义的逻辑

 1class Real_Bussiness(Bussiness):
 2    def request(self,user:User):
 3        print("核心业务逻辑处理开始")
 4        #这里只是模拟了先要做一次登录的权限校验验证,对于登录后的逻辑就空缺了,这里只是演示代理模式的原理
 5        if(self.login(user.get_user_username(),user.get_user_password())):
 6            self.deal()
 7        print("核心业务逻辑处理结束")
 8
 9    def login(self,username,password):
10        #这里对于用户的校验我是写死的,一般都是从db中获取是否匹配的
11        if username== "admin" and password== "123456":
12            print("login is success!!!")
13            return True
14        else:
15            return False
16
17    #此方法是登录后要做的另一个业务场景,这里就不多写了,只是模拟一下
18    def deal(self):
19        time.sleep(0.5)

3、定义 proxy 代理类,将业务请求转发给业务类,并在业务处理前中后做一些额外的处理
比如:增加日志的输出,增加处理的时长等

 1class Proxy(Bussiness):
 2    def __init__(self):
 3        self._rb=Real_Bussiness()
 4
 5    def request(self,user:User):
 6        print("开始发送请求")
 7        start_time=datetime.datetime.now()
 8        self._rb.request(user)
 9        end_time=datetime.datetime.now()
10        print("请求处理完成")
11        print("本次请求共耗时:",end_time-start_time)
12
13    #此方法是登录后要做的另一个业务场景,这里就不多写了,只是模拟一下
14    def deal(self):
15        time.sleep(0.5)
16
17
18
19if __name__ == '__main__':
20 user=User("admin","123456")
21
22 #直接调用业务处理逻辑
23 rb=Real_Bussiness()
24 rb.request(user)
25 print("*"*30)
26 #通过代理方式来调用业务处理逻辑
27 pr=Proxy()
28 pr.request(user)

4、输出结果

本次处理的输出结果是( print 结果):

核心业务逻辑处理开始
login is success!!!
核心业务逻辑处理结束

开始发送请求
核心业务逻辑处理开始
login is success!!!
核心业务逻辑处理结束
请求处理完成
本次请求共耗时:0:00:00.514653

相关推荐

qq加速器(Bill bill加速器)

可能原因如下:1、官方服务器正在更新升级,为了给用户更好的体验,系统的维护是必不可少的。2、可以检查是否是网络出现了问题,可以更换网络是否正常。3、很多软件都在维护,包括QQ,微信,微博等,只能是等维...

进入qq安全中心的官网(qq安全中心入口)

1、以电脑版QQ为例,成功登录QQ后,点击界面左下角的“主菜单”图标;2、在弹出框里点击“安全”,再在右边的弹出框里点击“安全中心首页”;3、就会跳转到QQ安全中心的网页了,在里面进行修改密码、我的密...

pp助手软件苹果版下载(pp助手苹果版免费下载)

工具:ipadmini41、打开ipad的桌面,点击safari浏览器进入。2、然后进入以后,在上面的搜索框里面,搜索z.25pp.com-pp助手,然后点击进入。3、然后进入以后就是安装pp助手的...

免费声卡软件下载(手机免费声卡软件下载)

应用商店上方下载。。第一步:打开浏览器,在网页中搜索“酷狗音乐播放器”,然后可以看到下面的页面。;第二步:选择第一个搜索结果(官网)中根据你要下载的类型切换电脑版、安卓版、苹果版,之后直接下载。;第三...

qq游戏网页版在线登录(qq游戏网页版在线登录官网)
qq游戏网页版在线登录(qq游戏网页版在线登录官网)

这个产品已经下线了啊扩展:WebQQ腾讯公司推出的使用网页方式上QQ的服务,特点是无需下载和安装QQ软件,只要能打开WebQQ的网站就可以登录QQ与好友保持联系。具有Web产品固有的便利性,同时在Web上最大限度的保持了客户端软件的操作习惯...

2026-02-01 01:03 off999

云电脑在线使用(云电脑怎样使用)

使用云电脑的步骤如下:1.注册:首先要有一个账号,然后登录云电脑的官网,进行注册,注册完成后,就可以正式使用云电脑了。2.安装:根据操作系统的不同,下载对应的云电脑客户端,安装完成后,登录账号,即可使...

pp手机助手安卓版官网(pp手机助手官网首页)

你好,PP助手无法连接安卓手机可能出现以下情况:1.请确保手机与电脑连接的USB线正常,并选择正确的传输模式(如文件传输模式)。2.确保你的手机已经开启了USB调试模式。可以在手机设置中的开发者选...

windows7安装版系统下载(win7安装版安装步骤)

1、win7系统装完后需要占用C盘空间10-15GB,如果把常用软件也安装到C盘,大小超过20+。  2、在分区的时候根据硬盘大小,如果硬盘相对较小,一般建议设置50G,最低不能低于30G。因...

韩剧网(韩剧网韩剧tv最新韩剧免费观看)

不收费,终身不收费~连续剧、综艺、歌曲,通通不要钱。之前好像是技术问题,现在恢复了。其它诸如人人视频、圈粉TV也都可以看韩剧哦。韩剧网有搜索页面的呀,搜索一下就可以了,不过好像《制作人》和玄彬的...

跳一跳游戏(跳一跳游戏是什么时候出来的)

GiveItUP《GiveItUP》是一款由Invictus推出的益智跑酷游戏。游戏与传统的跑酷类游戏最大的区别在于,游戏融入了高难度的节奏性挑战。红色火焰躲避技巧:红色火焰在游戏中是最常见的一个障碍...

什么是oa办公系统(办公oa系统的好处)

OA是OfficeAutomation的简写,就是办公自动化。所谓OA系统就是用网络和OA软件构建的一个单位内部的办公通信平台,用于辅助办公。OA系统完成单位内部的邮件通信、信息发布、文档管理、工作...

手机万能mp4转换器(手机万能mp4转换器下载)

1你需要先下载并安装一个叫格式工厂的软件。2然后打开->mp4。3点击添加文件的选项。4然后选择需要转换的视频,点击确定。5点击确定之后,再添加到转换列表中就可以。6再点...

迅雷beta官网(迅雷beta官方网)

若手机不能安装软件/游戏,建议:1.检查“未知来源”设置是否开启。2.查看下载的软件格式是否为机器所支持的。安卓系统手机支持的软件格式为.APK格式。3.下载软件时请阅读软件详情,查看是否对机器操作系...

私人家庭影院hd免费版游戏评测

《海上钢琴师》是由朱塞佩·托纳托雷执导,蒂姆·罗斯、比尔·努恩、梅兰尼·蒂埃里主演的剧情、音乐、爱情片。该片讲述了一个被命名为“1900”的弃婴在一艘远洋客轮上与钢琴结缘,成为钢琴大师的传奇故事。该片...

题库网(题库网站有哪些)

学科网的试卷有续费的和不需要交费的两类试卷,如果你是学科网的用户,可以下载试卷,还可以组卷,对于我们一线的老师来讲,这很方便的,只要学校肯出钱,在学科网前,全校的老师就可以注册免费试用学科,网上所有的...

取消回复欢迎 发表评论: