Python設(shè)計模式之橋接模式原理與用法實例分析
本文實例講述了Python設(shè)計模式之橋接模式原理與用法。分享給大家供大家參考,具體如下:
橋接模式(Bridge Pattern):將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化.
下面是一個橋接模式的demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設(shè)計模式 設(shè)計模式——橋接模式 橋接模式(Bridge Pattern):將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化. 程序?qū)嵗?手機軟件的分類 和 手機品牌的分類 耦合度低 兩種分類中間用一個set_handsetsoft橋接,各自的變化,不影響其他分類 """ # 抽象手機軟件類 class HandsetSoft(object): def run(self): pass #具體游戲類,游戲是手機軟件,繼承抽象手機軟件類 class HandsetGame(HandsetSoft): def run(self): print "運行手機游戲" #手機通訊錄 class HandsetAddressList(HandsetSoft): def run(self): print "運行通信錄" #抽象手機品牌類 class HandsetBrand(object): def __init__(self): self.soft = "" def set_handsetsoft(self,soft): self.soft = soft def run(self): pass # 手機品牌N class HandsetBrandN(HandsetBrand): def run(self): self.soft.run() # 手機品牌M class HandsetBrandM(HandsetBrand): def run(self): self.soft.run() if __name__ == "__main__": game = HandsetGame() address = HandsetAddressList() phoneN = HandsetBrandN() phoneN.set_handsetsoft(game) phoneN.run() phoneM = HandsetBrandM() phoneM.set_handsetsoft(address) phoneM.run()
運行結(jié)果:
上面類的設(shè)計如下圖
橋接模式的核心意圖就是把類的實現(xiàn)獨立出來,讓他們各自變化。這樣使每種實現(xiàn)的變化不會影響其他實現(xiàn),從而達到應對變化的目的
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
對python中的for循環(huán)和range內(nèi)置函數(shù)詳解
下面小編就為大家分享一篇對python中的for循環(huán)和range內(nèi)置函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Pytorch DataLoader shuffle驗證方式
這篇文章主要介紹了Pytorch DataLoader shuffle驗證方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06