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

yipeiwu_com6年前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文件操作类的操作实例,详细代码如下: #!/usr/bin/env python #!/usr/bin/env python #coding:utf-8 #...

python实现文本进度条 程序进度条 加载进度条 单行刷新功能

python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示: 利用time库来替代某个程序 的进行过程,做实例, 思路是,简单打印出来程序进度 单行刷新关键是\r...

Python学习笔记之if语句的使用示例

前言 条件语句在实际开发中我们已经使用过几次了,在这里我们需要再次隆重的来介绍一下它,下面话不多说了,来一起看看详细的介绍吧。 if语句 顾名思义,该语句为判断语句,先来一个简单的示例...

python下载库的步骤方法

python下载库的步骤方法

python怎么下载库? pip安装是python中最简单的一种安装第三方库的模式,要使用pip在线安装,我们要保证两个基本条件,分别是: 1. 要安装的机器可以连通外网 2. 知道第三...

python中matplotlib实现最小二乘法拟合的过程详解

python中matplotlib实现最小二乘法拟合的过程详解

前言 最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出)。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小...