Python设计模式之外观模式实例详解
作者:Andy冉明 时间:2022-01-18 16:39:37
本文实例讲述了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程序设计有所帮助。
来源:https://www.cnblogs.com/onepiece-andy/p/python-facade-pattern.html
标签:Python,设计模式,外观模式
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
[译]在线广告及其在网页设计中的重要性
2009-02-06 13:36:00
![](https://img.aspxhome.com/file/UploadPic/20092/6/001-22s.jpg)
php基于PDO实现功能强大的MYSQL封装类实例
2023-11-16 22:50:27
2009年五一劳动节logo欣赏
2009-05-02 18:26:00
![](https://img.aspxhome.com/file/UploadPic/20095/2/baidu-090501-18s.jpg)
python中实现词云图的示例
2021-08-04 22:11:33
![](https://img.aspxhome.com/file/2023/1/68821_0s.png)
SQL Server数据库和Oracle行转列的特殊方案描述
2010-07-26 15:14:00
Shell脚本中通过正则表达式匹配IP地址
2023-06-13 16:32:18
使用Numpy读取CSV文件,并进行行列删除的操作方法
2023-05-05 03:26:11
说说tab设计
2009-07-26 09:56:00
![](https://img.aspxhome.com/file/UploadPic/20097/26/tab-yahoo-63s.jpg)
Python基于pygame实现单机版五子棋对战
2021-02-26 05:53:54
![](https://img.aspxhome.com/file/2023/4/65974_0s.jpg)
Python实现计算文件夹下.h和.cpp文件的总行数
2022-09-20 00:54:51
javascript基础之indexOf函数
2008-06-25 13:28:00
fso文件按照文件名字母排序
2008-03-09 15:25:00
Python 面向切面编程 AOP 及装饰器
2021-05-07 14:16:36
![](https://img.aspxhome.com/file/2023/2/75212_0s.webp)
初学者必读:提高SQL执行效率的几点建议
2009-05-07 13:52:00
C#调用python脚本的方法步骤(2种)
2021-11-12 02:44:09
![](https://img.aspxhome.com/file/2023/5/71745_0s.png)
fckeditor编辑器在php中的配置方法
2023-10-14 14:26:52
python读取Excel表格文件的方法
2023-07-24 01:17:14
![](https://img.aspxhome.com/file/2023/2/75332_0s.jpg)
php基于协程实现异步的方法分析
2023-06-11 10:08:39
python提效小工具之统计xmind用例数量(源码)
2021-11-26 21:42:44
![](https://img.aspxhome.com/file/2023/6/72246_0s.png)
分析Python读取文件时的路径问题
2022-03-24 10:22:48
![](https://img.aspxhome.com/file/2023/8/67728_0s.png)