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中使用中文的方法
Feb 19 Python
wxPython窗口的继承机制实例分析
Sep 28 Python
python求列表交集的方法汇总
Nov 10 Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 Python
python中set常用操作汇总
Jun 30 Python
python实现数据写入excel表格
Mar 25 Python
python复制文件到指定目录的实例
Apr 27 Python
Python中的 enum 模块源码详析
Jan 09 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python判断是空的实例分享
Jul 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
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
PHP 简单数组排序实现代码
2009/08/05 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
基于Vue中的父子传值问题解决
2020/07/27 Javascript
Python 常用 PEP8 编码规范详解
2017/01/22 Python
python的help函数如何使用
2020/06/11 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
法律专业推荐信范文
2013/11/29 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
小学家长评语大全
2014/04/16 职场文书
团队精神的演讲稿
2014/05/14 职场文书
节水标语大全
2014/06/11 职场文书
商场周年庆活动方案
2014/08/19 职场文书
民事答辩状格式范文
2015/05/21 职场文书
公司仓库管理制度
2015/08/04 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
python自动化测试之Selenium详解
2022/03/13 Python