国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python設(shè)計模式4:適配器模式

這篇具有很好參考價值的文章主要介紹了python設(shè)計模式4:適配器模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用適配器模式使用兩個或是多個不兼容的接口兼容。在不修改不兼容代碼的情況下使用適配器模式實現(xiàn)接口一致性。通過Adapter 類實現(xiàn)。

例子: 一個俱樂部類Club,藝術(shù)加被請到俱樂部在表演節(jié)目: organize_performance()

Musician類 play()? 方法? Dancer 類主要是dance() 方法執(zhí)行? (external.py)?

外部模塊導入(adapter.py)創(chuàng)建一個通用的? Adapter類調(diào)整不兼容的對象。

?__init__() 方法的obj 參數(shù)是需要修改的對象,adapted_methods 是一個字典,包含與客戶端調(diào)用的方法和應該調(diào)用方法匹配的鍵值對。

chapter04/external.py

class Musician: 
    def __init__(self, name): 
        self.name = name
 
    def __str__(self): 
        return f'the musician {self.name}' 
 
    def play(self): 
        return 'plays music' 
 
class Dancer: 
    def __init__(self, name): 
        self.name = name 
 
    def __str__(self): 
        return f'the dancer {self.name}' 
 
    def dance(self): 
        return 'does a dance performance' 

chapter04/adapter.py



from external import Musician, Dancer

 
class Club: 
    def __init__(self, name): 
        self.name = name 
 
    def __str__(self): 
        return f'the club {self.name}' 
 
    def organize_event(self): 
        return 'hires an artist to perform for the people' 

        
class Adapter: 
    def __init__(self, obj, adapted_methods): 
        self.obj = obj 
        self.__dict__.update(adapted_methods) 
 
    def __str__(self): 
        return str(self.obj) 

        
def main(): 

    objects = [Club('Jazz Cafe'), Musician('Roy Ayers'), Dancer('Shane Sparks')]
    
    for obj in objects:
        if hasattr(obj, 'play') or hasattr(obj, 'dance'):
            if hasattr(obj, 'play'):
                adapted_methods = dict(organize_event=obj.play)   # 設(shè)置調(diào)用方法統(tǒng)一organize_event
            elif hasattr(obj, 'dance'):            
                adapted_methods = dict(organize_event=obj.dance)    # 設(shè)置調(diào)用方法統(tǒng)一organize_event
                
            # referencing the adapted object here
            obj = Adapter(obj, adapted_methods)
            
        print(f' 輸出 {obj} {obj.organize_event()}')  # 調(diào)用統(tǒng)一方法

  
if __name__ == "__main__": 
    main()

?輸出 the club Jazz Cafe hires an artist to perform for the people
?輸出 the musician Roy Ayers plays music
?輸出 the dancer Shane Sparks does a dance performance文章來源地址http://www.zghlxwxcb.cn/news/detail-741597.html

到了這里,關(guān)于python設(shè)計模式4:適配器模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 設(shè)計模式 06 適配器模式

    適配器模式(Adapter Pattern)屬于 結(jié)構(gòu)型 模式 結(jié)構(gòu)型 模式關(guān)注如何將現(xiàn)有的類或?qū)ο蠼M織在一起形成更加強大的結(jié)構(gòu)。 在生活中,我們經(jīng)常遇到這樣的一個問題:輕薄筆記本通常只有 type-c 或者 usb-a 接口,沒有網(wǎng)口。但日常使用中是往往需要連接網(wǎng)口上網(wǎng)的,這時想到的第

    2024年02月11日
    瀏覽(18)
  • 設(shè)計模式四:適配器模式

    設(shè)計模式四:適配器模式

    1、適配器模式的理解 適配器模式可以理解為有兩個現(xiàn)成的類Adaptee和Target,它們兩個是不能動的,要求必須使用B這個類來實現(xiàn)一個功能,但是A的內(nèi)容是能復用的,這個時候我們需要編寫一個轉(zhuǎn)換器 適配器模式 Adaptee:被適配者,現(xiàn)有的接口或者類; Adapter:適配器類,適配器

    2024年02月22日
    瀏覽(24)
  • 設(shè)計模式-- 3.適配器模式

    設(shè)計模式-- 3.適配器模式

    將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 請求者(client):客戶端角色,需要使用適配器的對象,不需要關(guān)心適配器內(nèi)部的實現(xiàn),只對接目標角色。 目標角色(Target):目標角色,和client直接對接,定義

    2024年01月18日
    瀏覽(26)
  • 《設(shè)計模式》之適配器模式

    《設(shè)計模式》之適配器模式

    把一個類的接口轉(zhuǎn)換成客戶端所期待的另一種接口,從而使原接口不匹配而無法再一起工作的兩個類能在一起工作。 在軟件系統(tǒng)中,由于應用環(huán)境的變化,常常需要將“一些現(xiàn)存的對象”放在新的環(huán)境中應用,但是新環(huán)境要求的接口是這些現(xiàn)存對象所不能滿足的。 如何應對

    2024年02月09日
    瀏覽(22)
  • 適配器設(shè)計模式

    適配器設(shè)計模式

    一、適配器模式 B站:java架構(gòu)師 定義:適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作 三種適配器:類的適配器模式、對象的適配器模式、接口的適配器模式 1.類適配器模式 實現(xiàn)方式:讓

    2024年02月11日
    瀏覽(22)
  • 設(shè)計模式——適配器

    說起適配器,大家第一個想到的可能就是電源適配器。 電源適配器的作用想必同學們也都清楚,那就是將220伏高電壓轉(zhuǎn)換成想要的5伏至20伏左右穩(wěn)定的低電壓。 從某種程度上講,編程中經(jīng)常提起的適配器模式的原理與上面講到的基本是一致的。 用于將一個類的接口轉(zhuǎn)換成另

    2024年02月12日
    瀏覽(20)
  • 【設(shè)計模式】使用適配器模式做補償設(shè)計

    【設(shè)計模式】使用適配器模式做補償設(shè)計

    適配器模式是一種 結(jié)構(gòu)型設(shè)計模式 ,它提供了一個中間層,通過這個中間層,客戶端可以使用統(tǒng)一的接口與具有不同接口的類進行交互,也就是說,將一個接口轉(zhuǎn)換成客戶期望的另一個接口,使得原本不兼容的接口能夠協(xié)同工作。 舉個現(xiàn)實中的例子,我們現(xiàn)在的很多輕薄筆

    2024年02月22日
    瀏覽(24)
  • 【設(shè)計模式】適配器模式怎么理解?

    【設(shè)計模式】適配器模式怎么理解?

    什么是轉(zhuǎn)換器模式? 轉(zhuǎn)換器模式是一種結(jié)構(gòu)型設(shè)計模式, 主要用于在兩種不同類型的對象之間進行轉(zhuǎn)換,而不需要改變原型的實際邏輯。這是一種在軟件設(shè)計中經(jīng)常使用的模式 ,它有助于保持代碼的整潔和組織。在軟件開發(fā)中,我們經(jīng)常會遇到在不同層之間轉(zhuǎn)換對象的需求

    2024年01月25日
    瀏覽(21)
  • Java 設(shè)計模式——適配器模式

    Java 設(shè)計模式——適配器模式

    (1)如果去歐洲國家去旅游的話,他們的插座如下圖最左邊,是歐洲標準。而我們使用的插頭如下圖最右邊的。因此我們的筆記本電腦,手機在當?shù)夭荒苤苯映潆?。所以就需要一個插座轉(zhuǎn)換器,轉(zhuǎn)換器第1面插入當?shù)氐牟遄?,?面供我們充電,這樣使得我們的插頭在當?shù)啬苁?/p>

    2024年02月16日
    瀏覽(24)
  • 設(shè)計模式-適配器模式 Adapter

    適配器設(shè)計模式(Adapter Design Pattern)是一種結(jié)構(gòu)型設(shè)計模式,用于 解決兩個不兼容接口之間的問題 。適配器允許 將一個類的接口轉(zhuǎn)換為客戶端期望的另一個接口,使得原本由于接口不兼容而不能一起工作的類可以一起工作。 在適配器設(shè)計模式中,主要包含以下四個角色:

    2024年02月19日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包