Python設(shè)計(jì)模式之外觀模式實(shí)例詳解
本文實(shí)例講述了Python設(shè)計(jì)模式之外觀模式。分享給大家供大家參考,具體如下:
外觀模式(Facade Pattern):為子系統(tǒng)中的一組接口提供一個(gè)一致界面,此模式定義一個(gè)高層接口,使得子系統(tǒng)更加容易使用
下面是一個(gè)外觀模式的demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設(shè)計(jì)模式 設(shè)計(jì)模式——外觀模式 facade_pattern.py 外觀模式(Facade Pattern):為子系統(tǒng)中的一組接口提供一個(gè)一致界面,此模式定義一個(gè)高層接口,使得子系統(tǒng)更加容易是用 """ # 外觀類(lèi) class Fund(object): def __init__(self): self.stocka = StockA() self.stockb = StockB() self.realty = Realty() def buy(self): self.stocka.buy() self.stockb.buy() self.realty.buy() def sell(self): self.stocka.sell() self.stockb.sell() self.realty.sell() # 投資股票A類(lèi) class StockA(object): def buy(self): print 'buy StockA' def sell(self): print 'sell StockA' # 投資股票B類(lèi) class StockB(object): def buy(self): print 'buy StockB' def sell(self): print 'sell StockB' # 投資房地產(chǎn) class Realty(object): def buy(self): print 'buy Realty' def sell(self): print 'sell Realty' if __name__=="__main__": fund = Fund() fund.buy() fund.sell()
運(yùn)行結(jié)果:
buy StockA
buy StockB
buy Realty
sell StockA
sell StockB
sell Realty
上面類(lèi)的設(shè)計(jì)如下圖:
Fund類(lèi)需要知道子系統(tǒng)類(lèi)的功能,以便將適當(dāng)?shù)腸lient請(qǐng)求發(fā)送給合適的子系統(tǒng)對(duì)象,使子系統(tǒng)的使用更加簡(jiǎn)單
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python設(shè)計(jì)模式之代理模式簡(jiǎn)單示例
- 簡(jiǎn)介Python設(shè)計(jì)模式中的代理模式與模板方法模式編程
- 舉例講解Python設(shè)計(jì)模式編程的代理模式與抽象工廠模式
- Python設(shè)計(jì)模式之代理模式實(shí)例
- Python設(shè)計(jì)模式之原型模式實(shí)例詳解
- Python設(shè)計(jì)模式之模板方法模式實(shí)例詳解
- Python設(shè)計(jì)模式之觀察者模式原理與用法詳解
- Python設(shè)計(jì)模式之抽象工廠模式原理與用法詳解
- Python設(shè)計(jì)模式之組合模式原理與用法實(shí)例分析
- Python設(shè)計(jì)模式之迭代器模式原理與用法實(shí)例分析
- Python設(shè)計(jì)模式之代理模式實(shí)例詳解
相關(guān)文章
Python自動(dòng)化測(cè)試基礎(chǔ)必備知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是一篇關(guān)于Python自動(dòng)化測(cè)試基礎(chǔ)必備知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-02-02python 實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例
本篇文章主要分享python學(xué)生管理系統(tǒng)的使用,文章非常詳細(xì)地介紹了通過(guò)示例代碼實(shí)現(xiàn)的學(xué)生管理系統(tǒng),該系統(tǒng)對(duì)每個(gè)人的研究或工作都有一定的參考學(xué)習(xí)價(jià)值,希望你能在其中有所收獲。2020-11-11如何在Django項(xiàng)目中引入靜態(tài)文件
這篇文章主要介紹了如何在Django項(xiàng)目中引入靜態(tài)文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Pytorch中torch.unsqueeze()與torch.squeeze()函數(shù)詳細(xì)解析
torch.squeeze()這個(gè)函數(shù)主要對(duì)數(shù)據(jù)的維度進(jìn)行壓縮,去掉維數(shù)為1的的維度,下面這篇文章主要給大家介紹了關(guān)于Pytorch中torch.unsqueeze()與torch.squeeze()函數(shù)詳細(xì)的相關(guān)資料,需要的朋友可以參考下2023-02-02opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置教程詳解
這篇文章主要介紹了opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09一篇文章搞懂Python程序流程控制結(jié)構(gòu)
這篇文章主要給大家介紹了關(guān)于Python程序流程控制結(jié)構(gòu)的相關(guān)資料,本節(jié)學(xué)習(xí)了Python程序的控制結(jié)構(gòu)之順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09