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)更加容易是用
"""
# 外觀類
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類
class StockA(object):
def buy(self):
print 'buy StockA'
def sell(self):
print 'sell StockA'
# 投資股票B類
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
上面類的設(shè)計(jì)如下圖:

Fund類需要知道子系統(tǒng)類的功能,以便將適當(dāng)?shù)腸lient請(qǐng)求發(fā)送給合適的子系統(tǒng)對(duì)象,使子系統(tǒng)的使用更加簡(jiǎn)單
更多關(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ì)有所幫助。
- 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-02
python 實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例
本篇文章主要分享python學(xué)生管理系統(tǒng)的使用,文章非常詳細(xì)地介紹了通過示例代碼實(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)文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Pytorch中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-02
opencv-python 開發(fā)環(huán)境的安裝、配置教程詳解
這篇文章主要介紹了opencv-python 開發(fā)環(huán)境的安裝、配置,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(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),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09

