Python设计模式之外观模式实例详解

 更新时间:2019年01月17日 11:43:14   作者:Andy冉明  
这篇文章主要介绍了Python设计模式之外观模式,结合实例形式详细分析了外观模式的概念、原理、用法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了Python设计模式之外观模式。分享给大家供大家参考,具体如下:

外观模式(Facade Pattern):为子系统中的一组接口提供一个一致界面,此模式定义一个高层接口,使得子系统更加容易使用

下面是一个外观模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大话设计模式
设计模式——外观模式
facade_pattern.py
外观模式(Facade Pattern):为子系统中的一组接口提供一个一致界面,此模式定义一个高层接口,使得子系统更加容易是用
"""
# 外观类
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'
# 投资房地产
class Realty(object):
  def buy(self):
    print 'buy Realty'
  def sell(self):
    print 'sell Realty'
if __name__=="__main__":
  fund = Fund()
  fund.buy()
  fund.sell()

运行结果:

buy StockA
buy StockB
buy Realty
sell StockA
sell StockB
sell Realty

上面类的设计如下图:

Fund类需要知道子系统类的功能,以便将适当的client请求发送给合适的子系统对象,使子系统的使用更加简单

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 通过字符串导入 Python 模块的方法详解

    通过字符串导入 Python 模块的方法详解

    这篇文章主要介绍了通过字符串导入 Python 模块的方法详解,本文通过实例结合,给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • python绘制简单彩虹图

    python绘制简单彩虹图

    这篇文章主要为大家详细介绍了python绘制简单彩虹图的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 使用python绘制3维正态分布图的方法

    使用python绘制3维正态分布图的方法

    今天小编就为大家分享一篇使用python绘制3维正态分布图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python解析excel文件存入sqlite数据库的方法

    Python解析excel文件存入sqlite数据库的方法

    最近工作中遇到一个需求,需要使用Python解析excel文件并存入sqlite,本文就实现的过程做个总结分享给大家,文中包括数据库设计、建立数据库、Python解析excel文件、Python读取文件名并解析和将解析的数据存储入库,有需要的朋友们下面来一起学习学习吧。
    2016-11-11
  • Python生成随机验证码的两种方法

    Python生成随机验证码的两种方法

    使用python生成随机验证码的方法有很多种,今天小编给大家分享两种方法,大家可以灵活运用这两种方法,设计出适合自己的验证码方法
    2015-12-12
  • Python cv.Canny()方法参数与使用方法

    Python cv.Canny()方法参数与使用方法

    这篇文章主要介绍了Python cv.Canny()方法参数与使用方法,OpenCV提供了cv.Canny()方法,该方法将输入的原始图像转换为边缘图像,更多相关内容需要的朋友可以参考一下
    2022-07-07
  • Python实现对Excel表格的操作详解

    Python实现对Excel表格的操作详解

    这篇文章主要介绍了Python实现对Excel表格的操作,在数据处理和报告生成等工作中,Excel表格是一种常见且广泛使用的工具,使用Python来处理Excel表格能够大大的提升效率,感兴趣的同学可以参考下
    2024-02-02
  • 使用Matplotlib绘制平行坐标系的示例详解

    使用Matplotlib绘制平行坐标系的示例详解

    平行坐标系,是一种含有多个垂直平行坐标轴的统计图表,这篇文章主要为大家介绍了如何使用绘制平行坐标系,需要的小伙伴可以参考一下
    2023-07-07
  • python 三种方法实现对Excel表格的读写

    python 三种方法实现对Excel表格的读写

    这篇文章主要介绍了python 三种方法实现对Excel表格的读写,帮助大家更好的利用python处理表格,感兴趣的朋友可以了解下
    2020-11-11
  • 浅谈keras的深度模型训练过程及结果记录方式

    浅谈keras的深度模型训练过程及结果记录方式

    今天小编就为大家分享一篇浅谈keras的深度模型训练过程及结果记录方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论