最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python学习之代理模式

来源:动视网 责编:小采 时间:2020-11-27 14:20:20
文档

Python学习之代理模式

Python学习之代理模式:本篇文章主要介绍Python实现代理模式,用了一个有趣的例子写了一个示范代码,具有一定参考价值,感兴趣的朋友可以了解一下,希望对您有帮助。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另
推荐度:
导读Python学习之代理模式:本篇文章主要介绍Python实现代理模式,用了一个有趣的例子写了一个示范代码,具有一定参考价值,感兴趣的朋友可以了解一下,希望对您有帮助。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另


本篇文章主要介绍Python实现代理模式,用了一个有趣的例子写了一个示范代码,具有一定参考价值,感兴趣的朋友可以了解一下,希望对您有帮助。

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式的应用场景:

1.远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

2.虚拟代理,是根据需要创建开销大的对象。通过它来存放实例化需要很长时间的真是对象,例如html中,图片需要load很久,所以通过虚拟代理来代替真实的图片

3.安全代理,用来控制真实对象访问时的权限

4.智能指引,是指当调用真实的对象时,代理处理另外一些事

举个栗子:男A喜欢女A,但是不敢向其表白,所以委托男B为代理,代他送礼物给女A,实现这个需求的重点是,男A和女A是不互相直接接触的,都是通过代理男B,实现间接接触。

#encoding=utf-8
__author__ = 'kevinlu1010@qq.com'
from abc import ABCMeta, abstractmethod

class FemaleA():
 def __init__(self, name):
 self.name = name

class Male():
 __metaclass__ = ABCMeta

 @abstractmethod
 def send_flower(self):
 pass

 @abstractmethod
 def send_chocolate(self):
 pass

 @abstractmethod
 def send_book(self):
 pass

class MaleA(Male):
 def __init__(self, name, love_female):
 self.name = name
 self.love_female = FemaleA(love_female)

 def send_flower(self):
 print '%s送花给%s' % (self.name, self.love_female.name)

 def send_chocolate(self):
 print '%s送巧克力给%s' % (self.name, self.love_female.name)

 def send_book(self):
 print '%s送书给%s' % (self.name, self.love_female.name)


class Proxy(Male):
 def __init__(self, name, proxyed_name, love_female):
 self.name = name
 self.proxyed = MaleA(proxyed_name, love_female)

 def send_flower(self):
 self.proxyed.send_flower()

 def send_chocolate(self):
 self.proxyed.send_chocolate()

 def send_book(self):
 self.proxyed.send_book()

if __name__ == '__main__':
 p = Proxy('男B', '男A', '女A')
 p.send_book()
 p.send_chocolate()
 p.send_flower()

相关教程:Python视频教程

文档

Python学习之代理模式

Python学习之代理模式:本篇文章主要介绍Python实现代理模式,用了一个有趣的例子写了一个示范代码,具有一定参考价值,感兴趣的朋友可以了解一下,希望对您有帮助。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top