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

Python設(shè)計(jì)模式編程中Adapter適配器模式的使用實(shí)例

 更新時(shí)間:2016年03月02日 11:23:42   作者:五岳  
這篇文章主要介紹了Python設(shè)計(jì)模式編程中Adapter適配器模式的使用實(shí)例,一般來(lái)說(shuō)適配器模式可以細(xì)分為類適配器和對(duì)象適配器模式,需要的朋友可以參考下

將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
應(yīng)用場(chǎng)景:希望復(fù)用一些現(xiàn)存的類,但是接口又與復(fù)用環(huán)境要求不一致。

模式特點(diǎn):將一個(gè)類的接口轉(zhuǎn)換成為客戶希望的另外一個(gè)接口。

分類:類適配器(通過多重繼承)、對(duì)象適配器。

來(lái)通過例子說(shuō)明,下面是用戶通過適配器使用一個(gè)類的方法

class Target:
 def Request():
  print "common request."

class Adaptee(Target):
 def SpecificRequest(self):
  print "specific request."

class Adapter(Target):
 def __init__(self,ada):
  self.adaptee = ada
 def Request(self):
  self.adaptee.SpecificRequest()

if __name__ == "__main__":
 adaptee = Adaptee()
 adapter = Adapter(adaptee)
 adapter.Request()

類圖:

201632112018391.jpg (669×296)

實(shí)例:
我們?cè)賮?lái)看一個(gè)簡(jiǎn)單的Adapter例子

#encoding=utf-8 
# 
#by panda 
#適配器模式 
 
 
def printInfo(info): 
 print unicode(info, 'utf-8').encode('gbk') 
 
#球員類 
class Player(): 
 name = '' 
 def __init__(self,name): 
  self.name = name 
  
 def Attack(self,name): 
  pass 
  
 def Defense(self): 
  pass 
  
#前鋒 
class Forwards(Player): 
 def __init__(self,name): 
  Player.__init__(self,name) 
  
 def Attack(self): 
  printInfo("前鋒%s 進(jìn)攻" % self.name) 
  
 def Defense(self,name): 
  printInfo("前鋒%s 防守" % self.name) 
 
#中鋒(目標(biāo)類) 
class Center(Player): 
 def __init__(self,name): 
  Player.__init__(self,name) 
  
 def Attack(self): 
  printInfo("中鋒%s 進(jìn)攻" % self.name) 
  
 def Defense(self): 
  printInfo("中鋒%s 防守" % self.name) 
  
#后衛(wèi) 
class Guards(Player): 
 def __init__(self,name): 
  Player.__init__(self,name) 
  
 def Attack(self): 
  printInfo("后衛(wèi)%s 進(jìn)攻" % self.name) 
  
 def Defense(self): 
  printInfo("后衛(wèi)%s 防守" % self.name) 
  
#外籍中鋒(待適配類) 
#中鋒 
class ForeignCenter(Player): 
 name = '' 
 def __init__(self,name): 
  Player.__init__(self,name) 
  
 def ForeignAttack(self): 
  printInfo("外籍中鋒%s 進(jìn)攻" % self.name) 
  
 def ForeignDefense(self): 
  printInfo("外籍中鋒%s 防守" % self.name) 
 
 
#翻譯(適配類) 
class Translator(Player): 
 foreignCenter = None 
 def __init__(self,name): 
  self.foreignCenter = ForeignCenter(name) 
  
 def Attack(self): 
  self.foreignCenter.ForeignAttack() 
  
 def Defense(self): 
  self.foreignCenter.ForeignDefense() 
 
 
def clientUI(): 
 b = Forwards('巴蒂爾') 
 m = Guards('麥克格雷迪') 
 ym = Translator('姚明') 
  
 b.Attack() 
 m.Defense() 
 ym.Attack() 
 ym.Defense() 
 return 
 
if __name__ == '__main__': 
 clientUI(); 

相關(guān)文章

  • 解決python-docx打包之后找不到default.docx的問題

    解決python-docx打包之后找不到default.docx的問題

    今天小編就為大家分享一篇解決python-docx打包之后找不到default.docx的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-02-02
  • python語(yǔ)言基本語(yǔ)句用法總結(jié)

    python語(yǔ)言基本語(yǔ)句用法總結(jié)

    在本篇文章里小編給大家整理了關(guān)于python語(yǔ)言基本語(yǔ)句的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們參考下。
    2019-06-06
  • 讓Python代碼更快運(yùn)行的5種方法

    讓Python代碼更快運(yùn)行的5種方法

    這篇文章主要介紹了讓Python代碼更快運(yùn)行的5種方法,本文分別介紹了PyPy、Pyston、Nuitka、Cython、Numba等開源軟件,可以提升Python的運(yùn)行效率,需要的朋友可以參考下
    2015-06-06
  • pycharm2020上部署配置AutoGPT4.0(保姆級(jí)教程)

    pycharm2020上部署配置AutoGPT4.0(保姆級(jí)教程)

    本文主要介紹了pycharm2020上部署配置AutoGPT4.0,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • python和php學(xué)習(xí)哪個(gè)更有發(fā)展

    python和php學(xué)習(xí)哪個(gè)更有發(fā)展

    在本篇內(nèi)容里小編給大家分析了關(guān)于python和php學(xué)習(xí)哪個(gè)更有發(fā)展相關(guān)論點(diǎn),有興趣的朋友們參考下。
    2020-06-06
  • Python高階函數(shù)map()?簡(jiǎn)介和使用詳解

    Python高階函數(shù)map()?簡(jiǎn)介和使用詳解

    map()?函數(shù)是Python中的內(nèi)置函數(shù),這個(gè)函數(shù)又叫做映射函數(shù),其實(shí)里面具有一個(gè)迭代器的功能,會(huì)依次遍歷可迭代對(duì)象進(jìn)行相關(guān)的操作,這篇文章主要介紹了Python高階函數(shù)map()?簡(jiǎn)介和使用詳解,需要的朋友可以參考下
    2023-03-03
  • Python的argparse庫(kù)使用詳解

    Python的argparse庫(kù)使用詳解

    argparse是python標(biāo)準(zhǔn)庫(kù)里面用來(lái)處理命令行參數(shù)的庫(kù),這篇文章主要介紹了Python的argparse庫(kù)使用詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 簡(jiǎn)單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn)

    簡(jiǎn)單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn)

    這篇文章主要介紹了簡(jiǎn)單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 新手入門Python編程的8個(gè)實(shí)用建議

    新手入門Python編程的8個(gè)實(shí)用建議

    這篇文章主要介紹了Python編程的8個(gè)實(shí)用建議,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python文件操作之目錄遍歷實(shí)例分析

    python文件操作之目錄遍歷實(shí)例分析

    這篇文章主要介紹了python文件操作之目錄遍歷的方法,以實(shí)例形式較為詳細(xì)的分析了目錄遍歷所需要用到的相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

酉阳| 宜兰县| 永嘉县| 永康市| 江都市| 铜山县| 昌吉市| 阿拉善右旗| 宜章县| 都匀市| 岑巩县| 潜山县| 滨州市| 讷河市| 道真| 施秉县| 白河县| 康马县| 通江县| 商河县| 江达县| 吉安市| 香港 | 清丰县| 法库县| 商城县| 青川县| 青冈县| 新巴尔虎右旗| 百色市| 清原| 五河县| 常山县| 赤峰市| 柯坪县| 巴楚县| 龙门县| 临清市| 安图县| 和政县| 丹棱县|