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中map、any、all函数用法分析
Apr 21 Python
Python实现简单HTML表格解析的方法
Jun 15 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
python 多个参数不为空校验方法
Feb 14 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
Django REST framwork的权限验证实例
Apr 02 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 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
五个PHP程序员工具
2008/05/26 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
JavaScript DOM基础
2015/04/13 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
js实现消息滚动效果
2017/01/18 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
js中的this的指向问题详解
2019/08/29 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
Python文件处理
2016/02/29 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
留学自荐信的技巧
2013/10/17 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
医德医风学习心得体会
2016/01/25 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书