在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 代理設(shè)計(jì)模式
反模式
隊(duì)列
適配器設(shè)計(jì)模式
享元設(shè)計(jì)模式
Python設(shè)計(jì)模式
工廠(chǎng)模式
模板設(shè)計(jì)模式
構(gòu)建器(Builder)設(shè)計(jì)模式
Python設(shè)計(jì)模式概要
命令設(shè)計(jì)模式
Python設(shè)計(jì)模式簡(jiǎn)介
觀(guān)察者設(shè)計(jì)模式
代理設(shè)計(jì)模式
異常處理
責(zé)任鏈設(shè)計(jì)模式
字典實(shí)現(xiàn)
抽象工廠(chǎng)設(shè)計(jì)模式
Python并發(fā)(多線(xiàn)程)
策略設(shè)計(jì)模式
門(mén)面(Facade)設(shè)計(jì)模式
原型設(shè)計(jì)模式
迭代器設(shè)計(jì)模式
集合
單例模式
列表數(shù)據(jù)結(jié)構(gòu)
狀態(tài)設(shè)計(jì)模式
模型視圖控制器(MVC)模式
裝飾器設(shè)計(jì)模式
面向?qū)ο蟾拍畹膶?shí)現(xiàn)
面向?qū)ο笤O(shè)計(jì)模式
字符串和序列化

代理設(shè)計(jì)模式

代理設(shè)計(jì)模式包含一個(gè)新對(duì)象,稱(chēng)為“代理”,代替被稱(chēng)為“真實(shí)主體”的現(xiàn)有對(duì)象。 由真實(shí)主體創(chuàng)建的代理對(duì)象必須位于相同的接口上,以便不讓客戶(hù)端知道使用代理來(lái)代替真實(shí)對(duì)象。 客戶(hù)端向代理生成的請(qǐng)求將通過(guò)真實(shí)主體傳遞。

代理模式的UML表示如下 -

如何實(shí)現(xiàn)代理模式?

現(xiàn)在讓我們來(lái)看看如何實(shí)現(xiàn)代理模式。參考以下實(shí)現(xiàn)代碼 -

class Image:
   def __init__( self, filename ):
      self._filename = filename

   def load_image_from_disk( self ):
      print("loading " + self._filename )

   def display_image( self ):
      print("display " + self._filename)

class Proxy:
   def __init__( self, subject ):
      self._subject = subject
      self._proxystate = None

class ProxyImage( Proxy ):
   def display_image( self ):
      if self._proxystate == None:
         self._subject.load_image_from_disk()
         self._proxystate = 1
      print("display " + self._subject._filename )

proxy_image1 = ProxyImage ( Image("HiRes_10Mb_Photo1") )
proxy_image2 = ProxyImage ( Image("HiRes_10Mb_Photo2") )

proxy_image1.display_image() # loading necessary
proxy_image1.display_image() # loading unnecessary
proxy_image2.display_image() # loading necessary
proxy_image2.display_image() # loading unnecessary
proxy_image1.display_image() # loading unnecessary

執(zhí)行上述程序生成以下輸出 -

代理模式設(shè)計(jì)有助于復(fù)制創(chuàng)建的圖像。 display_image()函數(shù)有助于檢查值是否在命令提示符下打印。