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

python 最簡單的實現(xiàn)適配器設計模式的示例

 更新時間:2020年06月30日 10:10:21   作者:1_bit  
這篇文章主要介紹了python 最簡單的實現(xiàn)適配器設計模式的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

適配器設計模式是懶得改動某些代碼,或者某些接口不方便改動的時候,使用一個特定的封裝,一些特定的編寫辦法,使不同的接口可以使用同種調(diào)用方式使用。

更簡單的說話則是,例如幾個不同的接口 aliyun、qiniuyun、tencentyun是新增的接口,以前都是使用接口yun進行文件備份,現(xiàn)在每一種調(diào)用不同名都太煩,統(tǒng)一使用yun去進行aliyun、qiniuyun、tencentyun上傳文件。這個時候就需要寫一個適配器。

現(xiàn)在看一個簡單例子,有一個類為Upload 是一個上傳類,里面有一個方法是yun方法:

class Upload:
  def yun(self):
    return '...... Uploading '

之后又新增了3個上傳類,分別是 AliUpload、QiniuUpload、TencentUpload,如下代碼:

class AliUpload:
  def aliyun(self):
    return '......aliyun Uploading '


class QiniuUpload:
  def qiniuyun(self):
    return '......qiniuyun Uploading ' 
    
class TencentUpload:
  def tencentyun(self):
    return '......tencentyun Uploading ' 

現(xiàn)在我想讓它們里面的yun 方法都使用統(tǒng)一接口名為 uploadyun,需要編寫一個適配器,代碼如下:

class Adapter:
  def __init__(self,yun,func):
    self.yun=yun
    self.__dict__.update(func)

init 方法接收兩個參數(shù),一個是yun,yun是yun對象,也就是 AliUpload、QiniuUpload、TencentUpload以及Upload 的對象,還有一個是func,需要統(tǒng)一名稱的方法字典。調(diào)用方式如下:(代碼比較冗余,不過對于某一部分讀者會很直觀)

首先新建yun的對象:

yun_obj=Upload()
aliyun_obj=AliUpload()
qiniuyun_obj=QiniuUpload()
tencentyun_obj=TencentUpload()

隨后新建適配器對象,并且把以上的對象及方法傳入到適配器初始化方法中:

aptyun=Adapter(yun_obj,dict(uploadyun=yun_obj.yun))
aptali=Adapter(aliyun_obj,dict(uploadyun=aliyun_obj.aliyun))
aptqiniu=Adapter(qiniuyun_obj,dict(uploadyun=qiniuyun_obj.qiniuyun))
apttencent=Adapter(tencentyun_obj,dict(uploadyun=tencentyun_obj.tencentyun))

由于我們需要通過使用調(diào)用 uploadyun 方法名統(tǒng)一調(diào)用,所以鍵為uploadyun,之后會成為類成員變量;最后直接用適配器對象進行統(tǒng)一名稱的方法調(diào)用:

print(aptyun.uploadyun())
print(aptali.uploadyun())
print(aptqiniu.uploadyun())
print(apttencent.uploadyun())

結果如下:


統(tǒng)一名稱后可以再一次封裝,進行統(tǒng)一調(diào)用(此內(nèi)容不是本文內(nèi)容不再贅述)。

整體代碼如下:

class Upload:
  def yun(self):
    return '...... Uploading '

class AliUpload:
  def aliyun(self):
    return '......aliyun Uploading '


class QiniuUpload:
  def qiniuyun(self):
    return '......qiniuyun Uploading ' 
    
class TencentUpload:
  def tencentyun(self):
    return '......tencentyun Uploading ' 
    
class Adapter:
  def __init__(self,yun,func):
    self.yun=yun
    self.__dict__.update(func)

#新建類
yun_obj=Upload()
aliyun_obj=AliUpload()
qiniuyun_obj=QiniuUpload()
tencentyun_obj=TencentUpload()
#適配器類
aptyun=Adapter(yun_obj,dict(uploadyun=yun_obj.yun))
aptali=Adapter(aliyun_obj,dict(uploadyun=aliyun_obj.aliyun))
aptqiniu=Adapter(qiniuyun_obj,dict(uploadyun=qiniuyun_obj.qiniuyun))
apttencent=Adapter(tencentyun_obj,dict(uploadyun=tencentyun_obj.tencentyun))
#統(tǒng)一接口調(diào)用示例
print(aptyun.uploadyun())
print(aptali.uploadyun())
print(aptqiniu.uploadyun())
print(apttencent.uploadyun())

到此這篇關于python 最簡單的實現(xiàn)適配器設計模式的示例的文章就介紹到這了,更多相關python 適配器設計模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Pycharm設置去除顯示的波浪線方法

    Pycharm設置去除顯示的波浪線方法

    今天小編就為大家分享一篇Pycharm設置去除顯示的波浪線方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 最炫Python煙花代碼全解析

    最炫Python煙花代碼全解析

    2022虎年新年即將來臨,小編為大家?guī)砹艘粋€利用Python編寫的虎年煙花特效,堪稱全網(wǎng)最絢爛,文中的示例代碼簡潔易懂,感興趣的同學可以動手試一試
    2022-02-02
  • 將keras的h5模型轉(zhuǎn)換為tensorflow的pb模型操作

    將keras的h5模型轉(zhuǎn)換為tensorflow的pb模型操作

    這篇文章主要介紹了將keras的h5模型轉(zhuǎn)換為tensorflow的pb模型操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python httplib模塊使用實例

    Python httplib模塊使用實例

    這篇文章主要介紹了Python httplib模塊使用實例,httplib模塊是一個底層基礎模塊,本文講解了httplib模塊的常用方法及使用實例,需要的朋友可以參考下
    2015-04-04
  • python實現(xiàn)在目錄中查找指定文件的方法

    python實現(xiàn)在目錄中查找指定文件的方法

    這篇文章主要介紹了python實現(xiàn)在目錄中查找指定文件的方法,通過模糊查找與精確查找兩個實例較為詳細的闡述了文件查找的方法,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • 學習python的前途 python掙錢

    學習python的前途 python掙錢

    在本文里我們給大家整理了關于學習python的前途以及python掙錢的方法整理,有興趣的朋友們閱讀下。
    2019-02-02
  • python實現(xiàn)簡單井字棋小游戲

    python實現(xiàn)簡單井字棋小游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡單井字棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python中處理無效數(shù)據(jù)的詳細教程

    Python中處理無效數(shù)據(jù)的詳細教程

    無效數(shù)據(jù)是指不符合數(shù)據(jù)收集目的或數(shù)據(jù)收集標準的數(shù)據(jù),這些數(shù)據(jù)可能來自于不準確的測量、缺失值、錯誤標注、虛假的數(shù)據(jù)源或其他問題,本文就將帶大家學習Python中如何處理無效數(shù)據(jù),感興趣的同學可以跟著小編一起來學習
    2023-06-06
  • python 生成目錄樹及顯示文件大小的代碼

    python 生成目錄樹及顯示文件大小的代碼

    沒啥技術含量,大家都說沒用,只不過算法還有點意思。自己憋出來的,不知道是不是跟別人的一樣。做遞歸得到子文件夾以及文件并不難,但是能夠打印出樹形,層次關系展示出來,有些難度。
    2009-07-07
  • python 用下標截取字符串的實例

    python 用下標截取字符串的實例

    今天小編就為大家分享一篇python 用下標截取字符串的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論

咸宁市| 顺平县| 宁波市| 朝阳市| 灌南县| 黄石市| 平谷区| 安乡县| 常州市| 余庆县| 阳高县| 阜康市| 罗平县| 凤城市| 密山市| 潢川县| 满城县| 弥勒县| 德钦县| 监利县| 布尔津县| 五华县| 民权县| 巨鹿县| 通渭县| 丹凤县| 涪陵区| 吉安市| 宣武区| 开平市| 买车| 德清县| 九江县| 桃园市| 新沂市| 离岛区| 永康市| 湘西| 沙雅县| 甘孜县| 吴江市|