適配器模式(python)

來源:互聯網
上載者:User

適配器模式:將一個類的介面轉換成客戶希望的另外一個介面。使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
應用情境:希望複用一些現存的類,但是介面又與複用環境要求不一致。

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

#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)   #後衛class Guards(Player):   def __init__(self,name):       Player.__init__(self,name)      def Attack(self):       printInfo("後衛%s 進攻" % self.name)      def Defense(self):       printInfo("後衛%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()    returnif __name__ == '__main__':    clientUI();

類圖:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.