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

Python設計模式編程中Adapter適配器模式的使用實例

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

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

模式特點:將一個類的接口轉換成為客戶希望的另外一個接口。

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

來通過例子說明,下面是用戶通過適配器使用一個類的方法

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)

實例:
我們再來看一個簡單的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 進攻" % self.name) 
  
 def Defense(self,name): 
  printInfo("前鋒%s 防守" % self.name) 
 
#中鋒(目標類) 
class Center(Player): 
 def __init__(self,name): 
  Player.__init__(self,name) 
  
 def Attack(self): 
  printInfo("中鋒%s 進攻" % 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 進攻" % 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 進攻" % 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(); 

相關文章

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

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

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

    python語言基本語句用法總結

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

    讓Python代碼更快運行的5種方法

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

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

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

    python和php學習哪個更有發(fā)展

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

    Python高階函數map()?簡介和使用詳解

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

    Python的argparse庫使用詳解

    argparse是python標準庫里面用來處理命令行參數的庫,這篇文章主要介紹了Python的argparse庫使用詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 簡單瞅瞅Python vars()內置函數的實現

    簡單瞅瞅Python vars()內置函數的實現

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

    新手入門Python編程的8個實用建議

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

    python文件操作之目錄遍歷實例分析

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

最新評論

娄底市| 麻江县| 景洪市| 三门峡市| 石狮市| 仙居县| 恩平市| 柯坪县| 托克托县| 闵行区| 临沂市| 瑞安市| 宾阳县| 凤庆县| 象州县| 当雄县| 嘉峪关市| 读书| 延庆县| 唐海县| 尉犁县| 黄大仙区| 安塞县| 大同市| 隆子县| 水富县| 莱州市| 清流县| 乌鲁木齐市| 庆云县| 彭泽县| 抚宁县| 罗定市| 理塘县| 阜宁县| 贡嘎县| 江阴市| 拜城县| 缙云县| 芦山县| 鸡泽县|