大话设计模式Python实现-外观模式
外观模式(Facade Pattern):为子系统中的一组接口提供一个一致界面,此模式定义一个高层接口,使得子系统更加容易使用
下面是一个外观模式的demo:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 __author__ = 'Andy' 5 """ 6 大话设计模式 7 设计模式——外观模式 8 facade_pattern.py 9 外观模式(Facade Pattern):为子系统中的一组接口提供一个一致界面,此模式定义一个高层接口,使得子系统更加容易是用 10 """ 11 # 外观类 12 class Fund(object): 13 14 def __init__(self): 15 self.stocka = StockA() 16 self.stockb = StockB() 17 self.realty = Realty() 18 19 def buy(self): 20 self.stocka.buy() 21 self.stockb.buy() 22 self.realty.buy() 23 24 def sell(self): 25 self.stocka.sell() 26 self.stockb.sell() 27 self.realty.sell() 28 29 # 投资股票A类 30 class StockA(object): 31 32 def buy(self): 33 print 'buy StockA' 34 35 def sell(self): 36 print 'sell StockA' 37 # 投资股票B类 38 class StockB(object): 39 40 def buy(self): 41 print 'buy StockB' 42 43 def sell(self): 44 print 'sell StockB' 45 46 # 投资房地产 47 class Realty(object): 48 49 def buy(self): 50 print 'buy Realty' 51 52 def sell(self): 53 print 'sell Realty' 54 55 56 57 if __name__=="__main__": 58 59 fund = Fund() 60 fund.buy() 61 fund.sell()
上面类的设计如下图:
Fund类需要知道子系统类的功能,以便将适当的client请求发送给合适的子系统对象,使子系统的使用更加简单
作者:Andy
出处:http://www.cnblogs.com/onepiece-andy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。