橋接模式:將系統抽象部分與它的實現部分分離,使它們可以獨立地變化。
由於目標系統存在多個角度的分類,每一種分類都會有多種變化,那麼就可以把多角度分離出來,讓它們獨立變化,減少它們之間的耦合。
#encoding=utf-8##by panda#橋接模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#抽象類別:手機品牌class HandsetBrand(): soft = None def SetHandsetSoft(self, soft): self.soft = soft def Run(self): pass #具體抽象類別:手機品牌1class HandsetBrand1(HandsetBrand): def Run(self): printInfo('手機品牌1:') self.soft.Run()#具體抽象類別:手機品牌2class HandsetBrand2(HandsetBrand): def Run(self): printInfo('手機品牌2:') self.soft.Run() #功能類:手機軟體class HandsetSoft(): def Run(self): pass#具體功能類:遊戲 class HandsetGame(HandsetSoft): def Run(self): printInfo('運行手機遊戲') #具體功能類:通訊錄 class HandsetAddressList(HandsetSoft): def Run(self): printInfo('運行手機通訊錄')def clientUI(): h1 = HandsetBrand1() h1.SetHandsetSoft(HandsetAddressList()) h1.Run() h1.SetHandsetSoft(HandsetGame()) h1.Run() h2 = HandsetBrand2() h2.SetHandsetSoft(HandsetAddressList()) h2.Run() h2.SetHandsetSoft(HandsetGame()) h2.Run() returnif __name__ == '__main__': clientUI();
類圖: