Python設(shè)計(jì)模式之橋接模式原理與用法實(shí)例分析
本文實(shí)例講述了Python設(shè)計(jì)模式之橋接模式原理與用法。分享給大家供大家參考,具體如下:
橋接模式(Bridge Pattern):將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化.
下面是一個(gè)橋接模式的demo:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——橋接模式
橋接模式(Bridge Pattern):將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化.
程序?qū)嵗?手機(jī)軟件的分類 和 手機(jī)品牌的分類 耦合度低 兩種分類中間用一個(gè)set_handsetsoft橋接,各自的變化,不影響其他分類
"""
# 抽象手機(jī)軟件類
class HandsetSoft(object):
def run(self):
pass
#具體游戲類,游戲是手機(jī)軟件,繼承抽象手機(jī)軟件類
class HandsetGame(HandsetSoft):
def run(self):
print "運(yùn)行手機(jī)游戲"
#手機(jī)通訊錄
class HandsetAddressList(HandsetSoft):
def run(self):
print "運(yùn)行通信錄"
#抽象手機(jī)品牌類
class HandsetBrand(object):
def __init__(self):
self.soft = ""
def set_handsetsoft(self,soft):
self.soft = soft
def run(self):
pass
# 手機(jī)品牌N
class HandsetBrandN(HandsetBrand):
def run(self):
self.soft.run()
# 手機(jī)品牌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()
運(yùn)行結(jié)果:

上面類的設(shè)計(jì)如下圖

橋接模式的核心意圖就是把類的實(shí)現(xiàn)獨(dú)立出來,讓他們各自變化。這樣使每種實(shí)現(xiàn)的變化不會(huì)影響其他實(shí)現(xiàn),從而達(dá)到應(yīng)對(duì)變化的目的
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python操作MySQL數(shù)據(jù)庫9個(gè)實(shí)用實(shí)例
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12
python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞
這篇文章主要介紹了python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞,下面通過一個(gè)小案例來簡單的理解什么是裝飾器,需要的小伙伴可以參考一下2022-03-03
python數(shù)據(jù)分析工具之 matplotlib詳解
對(duì)于 Python 來說,matplotlib 是最著名的繪圖庫,它主要用于二維繪圖,當(dāng)然也可以進(jìn)行簡單的三維繪圖。這篇文章主要介紹了python數(shù)據(jù)分析工具之 matplotlib的相關(guān)知識(shí),需要的朋友可以參考下2020-04-04
解決windows下python3使用multiprocessing.Pool出現(xiàn)的問題
這篇文章主要介紹了解決windows下python3使用multiprocessing.Pool出現(xiàn)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

