facade模式,即門面模式,也稱外觀模式,這個模式的核心思想是使用facade對象為外部客戶端提供一個統(tǒng)一的訪問一組子系統(tǒng)的接口,即客戶端不會直接與各個子系統(tǒng)交互,而是通過facade對象與各個子系統(tǒng)進行通信并使用子系統(tǒng)的相應(yīng)功能。
可以通過下面這個圖來理解facade模式:
子系統(tǒng):各個子系統(tǒng)原則上都是獨立存在的,互不干涉的,重要的是它們都不會去關(guān)注facade對象,更不會去引用facade對象。
facade:facade對象負責將各個子系統(tǒng)組合成在一起,并為外部提供一個“舒適的外觀”和訪問接口。
客戶端:客戶端通過facade對象去和各個子系統(tǒng)進行交互,不會直接去和各個子系統(tǒng)打交道。
簡單示例:
class Shampoo: """子系統(tǒng):賣各種洗發(fā)露""" def __init__(self): print('We sell all kinds of shampoo!') def piaorou_500ml(self, number): print('This is 500ml piaorou shampoo! Total: %d' % number) class WashingPowder: """子系統(tǒng):賣各種洗衣粉""" def __init__(self): print('We sell all kinds of washing powder!') def libai_3kg(self, number): print('This is 3kg libai washing powder! Total: %d' % number) class Tissue: """子系統(tǒng):賣各種抽紙""" def __init__(self): print('We sell all kinds of tissue!') def jierou_200sheets(self, number): print('This is 200 sheets tissue! Total: %d' % number) class Salesman: """facade:售貨員""" def __init__(self): self.shampoo = Shampoo() self.washing_powder = WashingPowder() self.tissue = Tissue() print('What can I help you?') def sale_for_family(self): """家庭套餐""" self.shampoo.piaorou_500ml(1) self.washing_powder.libai_3kg(2) self.tissue.jierou_200sheets(6) class UncleLi: """客戶端:李大爺""" def __init__(self): print('I want bug something!') def buy_for_family(self): """直接從售貨員那里購買家庭套餐""" sale_man = Salesman() sale_man.sale_for_family()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。