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


Posted in Python onJanuary 17, 2019

本文实例讲述了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

上面类的设计如下图:

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

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

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

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

Python 相关文章推荐
简单文件操作python 修改文件指定行的方法
May 15 Python
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
pandas中Timestamp类用法详解
Dec 11 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
python中类的属性和方法介绍
Nov 27 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
Python应用领域和就业形势分析总结
May 14 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
Python pycharm 同时加载多个项目的方法
Jan 17 #Python
Python设计模式之建造者模式实例详解
Jan 17 #Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 #Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 #Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 #Python
pycharm 实现显示project 选项卡的方法
Jan 17 #Python
pycharm修改界面主题颜色的方法
Jan 17 #Python
You might like
第八节--访问方式
2006/11/16 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
python创建和使用字典实例详解
2013/11/01 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
Python错误的处理方法
2020/06/23 Python
英国网上电器商店:Electricshop
2020/03/15 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
过滤器的用法
2013/10/08 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
小学生倡议书范文
2014/05/13 职场文书
个人综合鉴定材料
2014/05/23 职场文书
本科应届生自荐信
2014/06/29 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
Java异常处理try catch的基本用法
2021/12/06 Java/Android
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis