外觀(Facade)模式[python版]

來源:互聯網
上載者:User

外觀(Facade)模式:為子系統中的一組介面提供一個一致的介面。

——此模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。

與其它模式的區別:與 “簡單原廠模式+策略模式”的組合版 很類似,不過外觀類的介面不是簡單的調用功能類的相應介面,而是封裝成了新的介面。

使用情境:維護一個遺留的大型系統是,可能這個系統已經非常難以維護和擴充,但是它包含很重要的功能,新的開發必須依賴於它,這樣增加外觀Facade類,為系統封裝一個比較清晰簡單的介面,讓新系統與Facade對象互動,Facade與遺留代碼互動所有複雜的工作

#encoding=utf-8##by panda#面板模式(Facade)def printInfo(info):    print unicode(info, 'utf-8').encode('gbk')    class Stock1():    name = '股票1'    def buy(self):        printInfo('買 '+self.name)        def sell(self):        printInfo('賣 '+self.name)        class Stock2():    name = '股票2'    def buy(self):        printInfo('買 '+self.name)        def sell(self):        printInfo('賣 '+self.name)class NationDebt1():    name = '國債1'    def buy(self):        printInfo('買 '+self.name)        def sell(self):        printInfo('賣 '+self.name)class Realty1():    name = '房地產1'    def buy(self):        printInfo('買 '+self.name)        def sell(self):        printInfo('賣 '+self.name)#基金class Fund():    gu1 = None    gu2 = None    nd1 = None    rt1 = None    def __init__(self):        self.gu1 = Stock1()        self.gu2 = Stock2()        self.nd1 = NationDebt1()        self.rt1 = Realty1()            def buyFund(self):        self.gu1.buy()        self.gu2.buy()        self.nd1.buy()        self.rt1.buy()        def sellFund(self):        self.gu1.sell()        self.gu2.sell()        self.nd1.sell()        self.rt1.sell()    def clientUI():    myFund = Fund()    myFund.buyFund()    myFund.sellFund()    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.