最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python設(shè)計(jì)模式之代理模式簡(jiǎn)單示例

 更新時(shí)間:2018年01月09日 10:08:30   作者:李自泰  
這篇文章主要介紹了Python設(shè)計(jì)模式之代理模式,簡(jiǎn)單說(shuō)明了代理模式的概念、原理,并結(jié)合Python實(shí)例形式分析了代理模式的相關(guān)定義與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Python設(shè)計(jì)模式之代理模式。分享給大家供大家參考,具體如下:

代理模式在一般形式上是一個(gè)類(lèi)函數(shù)接口。代理可以是這些事物的接口:網(wǎng)絡(luò)連接,存儲(chǔ)的對(duì)象,文件,或者其他資源(昂貴的或者不容易復(fù)制的)。

一個(gè)眾所周知的代理模式的例子就是引用計(jì)數(shù)的指針對(duì)象。

代理模式是結(jié)構(gòu)設(shè)計(jì)模式的例子。這個(gè)模式的目的是要?jiǎng)?chuàng)建一個(gè)真實(shí)對(duì)象或類(lèi)的代理。

代理模式有3個(gè)必要的元素:

1. 真實(shí)的對(duì)象(執(zhí)行業(yè)務(wù)邏輯,被代理的對(duì)象)
2. 代理類(lèi)(用戶(hù)請(qǐng)求的一個(gè)接口,對(duì)真實(shí)目標(biāo)的保護(hù))
3. 用戶(hù)(獲取任務(wù)的用戶(hù)請(qǐng)求)

代理模式存在在以下的情形中:

① 為真實(shí)目標(biāo)類(lèi)創(chuàng)建一個(gè)對(duì)象的代價(jià)是昂貴的,一個(gè)簡(jiǎn)單對(duì)象被代理類(lèi)創(chuàng)建是便宜的方法。
② 對(duì)象必須防止被用戶(hù)直接使用。
③ 當(dāng)實(shí)際請(qǐng)求的時(shí)候,為真實(shí)目標(biāo)類(lèi)創(chuàng)建一個(gè)對(duì)象會(huì)有延遲。

用一些真實(shí)世界的代理模式例子,allapplabs 和 userpages 來(lái)描述:

使用緩存代理能夠馬上緩存用戶(hù)請(qǐng)求的web頁(yè)面。這個(gè)方法能夠避免更多重復(fù)的請(qǐng)求,改善性能。

消息box用進(jìn)度條的方式傳遞程序執(zhí)行狀態(tài)

用文字處理程序打開(kāi)一個(gè)文件,導(dǎo)入一個(gè)消息說(shuō),“please wait while the software opens the document”

一個(gè)簡(jiǎn)單的python實(shí)現(xiàn);

讓我們想想一個(gè)正規(guī)辦公的場(chǎng)景,為了向一個(gè)公司的銷(xiāo)售主管談話(huà),用戶(hù)首先會(huì)向銷(xiāo)售主管辦公室的接待員打個(gè)電話(huà),隨后接待員轉(zhuǎn)接電話(huà)。在這個(gè)例子中,銷(xiāo)售主管會(huì)是用戶(hù)希望交談的目標(biāo),接待員就是一個(gè)代理,保護(hù)主體不受用戶(hù)直接要求談話(huà)中苦惱。

擴(kuò)展這個(gè)例子,我門(mén)可以認(rèn)為'銷(xiāo)售主管'是一個(gè)真正的目標(biāo),創(chuàng)建一個(gè)常用的目標(biāo)類(lèi)作為管理者,接待員可以繼承。

#coding=utf8
import time
class Manager(object):
  def work(self):
    pass
  def talk(self):
    pass
class SalesManager(Manager):
  def work(self):
    print "Sales Manager working..."
  def talk(self):
    print "Sales Manager ready to talk"
class Proxy(Manager):
  def __init__(self):
    self.busy = 'No'
    self.sales = None
  def work(self):
    print "Proxy checking for Sales Manager availability"
    if self.busy == 'Yes':
      self.sales = SalesManager()
      time.sleep(2)
      self.sales.talk()
    else:
      time.sleep(2)
      print "Sales Manager is busy"
if __name__ == '__main__':
  p = Proxy()
  p.busy = 'Yes'
  p.work()

運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python生成隨機(jī)驗(yàn)證碼的兩種方法

    Python生成隨機(jī)驗(yàn)證碼的兩種方法

    使用python生成隨機(jī)驗(yàn)證碼的方法有很多種,今天小編給大家分享兩種方法,大家可以靈活運(yùn)用這兩種方法,設(shè)計(jì)出適合自己的驗(yàn)證碼方法
    2015-12-12
  • JAVA SWT事件四種寫(xiě)法實(shí)例解析

    JAVA SWT事件四種寫(xiě)法實(shí)例解析

    這篇文章主要介紹了JAVA SWT事件四種寫(xiě)法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python如何將一個(gè)EXCEL表拆分多個(gè)excel表

    Python如何將一個(gè)EXCEL表拆分多個(gè)excel表

    在Python中,你可以使用pandas庫(kù)來(lái)讀取Excel文件,并將一個(gè)大的Excel表格(工作表)拆分成多個(gè)單獨(dú)的Excel文件,這篇文章主要介紹了Python如何將一個(gè)EXCEL表拆分多個(gè)excel表,需要的朋友可以參考下
    2024-06-06
  • python中的函數(shù)用法入門(mén)教程

    python中的函數(shù)用法入門(mén)教程

    這篇文章主要介紹了python中的函數(shù)用法,包括了函數(shù)的定義及參數(shù)的各種注意事項(xiàng)等,對(duì)Python初學(xué)者有很好的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • Python操作excel的方法總結(jié)(xlrd、xlwt、openpyxl)

    Python操作excel的方法總結(jié)(xlrd、xlwt、openpyxl)

    這篇文章主要給大家介紹了關(guān)于Python操作excel的一些方法,其中包括xlrd、xlwt、openpyxl的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python網(wǎng)絡(luò)爬蟲(chóng)之爬取微博熱搜

    Python網(wǎng)絡(luò)爬蟲(chóng)之爬取微博熱搜

    這篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲(chóng)之爬取微博熱搜的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • 使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼

    使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼

    這篇文章主要介紹了使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼,下面給出個(gè)具體應(yīng)用中的示例:需要導(dǎo)出pytorch的affine_grid算子,但在pytorch的2.0.1版本中又無(wú)法正常導(dǎo)出該算子,故可通過(guò)如下自定義算子代碼導(dǎo)出,需要的朋友可以參考下
    2024-03-03
  • python機(jī)器學(xué)習(xí)之決策樹(shù)分類(lèi)詳解

    python機(jī)器學(xué)習(xí)之決策樹(shù)分類(lèi)詳解

    這篇文章主要介紹了python機(jī)器學(xué)習(xí)之決策樹(shù)分類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python配置虛擬環(huán)境步驟

    python配置虛擬環(huán)境步驟

    大家好,本篇文章主要講的是python配置虛擬環(huán)境步驟,感興趣的同學(xué)趕快來(lái)看一看,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關(guān)函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09

最新評(píng)論

漳州市| 深水埗区| 宿迁市| 哈尔滨市| 安新县| 石阡县| 镇赉县| 渭源县| 永兴县| 梧州市| 务川| 泰宁县| 额敏县| 太和县| 临桂县| 萨嘎县| 化隆| 新郑市| 揭东县| 玉树县| 阜南县| 休宁县| 嘉善县| 三门县| 涡阳县| 湖口县| 安福县| 青岛市| 固阳县| 曲阳县| 沧州市| 夏津县| 合山市| 潍坊市| 安义县| 阿巴嘎旗| 龙游县| 商都县| 普安县| 利津县| 辽中县|