zoukankan      html  css  js  c++  java
  • 大话设计模式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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    软工作业02
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练【任务一】
    15软工 15100340
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练
    软工课后作业001
    20180320作业2:进行代码复审训练
  • 原文地址:https://www.cnblogs.com/onepiece-andy/p/python-facade-pattern.html
Copyright © 2011-2022 走看看