大话设计模式(Python版)--外观模式

股民炒股代码:

#!/usr/bin/env python
from abc import ABCMeta,abstractmethod

class Stock1:
    def Sell(self):
        print('sell out stock 1 ')
    def Buy(self):
        print('buy stock 1')
class Stock2:
    def Sell(self):
        print('sell out stock 2 ')
    def Buy(self):
        print('buy stock 2')
class NationalDebt1:
    def Sell(self):
        print('sell out National Debt 1 ')
    def Buy(self):
        print('buy National Debt 1')
        
def main():
    s1 = Stock1()
    s2 = Stock2()
    nd1 = NationalDebt1()
    s1.Buy()
    s2.Buy()
    nd1.Buy()
    s1.Sell()
    s2.Sell()
    nd1.Sell()

if __name__ == '__main__':
    main()
投资基金代码:

#!/usr/bin/env python

class Stock1:
    def sell(self):
        print('sell out stock 1 ')
    def buy(self):
        print('buy stock 1')
class Stock2:
    def sell(self):
        print('sell out stock 2 ')
    def buy(self):
        print('buy stock 2')
class NationalDebt1:
    def sell(self):
        print('sell out National Debt 1 ')
    def buy(self):
        print('buy National Debt 1')
class Realty1:
    def sell(self):
        print('sell out Realty 1 ')
    def buy(self):
        print('buy Realty 1')

class Fund:
    def __init__(self):
        self.s1 = Stock1()
        self.s2 = Stock2()
        self.nd1 = NationalDebt1()
        self.rt1 = Realty1()
    def BuyFund(self):
        self.s1.buy()
        self.s2.buy()
        self.nd1.buy()
        self.rt1.buy()
    def SellFund(self):
        self.s1.sell()
        self.s2.sell()
        self.nd1.sell()
        self.rt1.sell()

def main():
    fd = Fund()
    fd.BuyFund()
    fd.SellFund()
    
if __name__ == '__main__':
    main()

外观模式:

#!/usr/bin/env python

class SubSystemOne:
    def MethodOne(self):
        print("SubSystem One, Method One")

class SubSystemTwo:
    def MethodTwo(self):
        print("SubSystem Two, Method Two")

class SubSystemThree:
    def MethodThree(self):
        print("SubSystem Three, Method Three")

class SubSystemFour:
    def MethodFour(self):
        print("SubSystem Four, Method Four")

class Facade:
    def __init__(self):
        self.one = SubSystemOne()
        self.two = SubSystemTwo()
        self.three = SubSystemThree()
        self.four = SubSystemFour()
    def MethodA(self):
        print("Method A ----")
        self.one.MethodOne()
        self.two.MethodTwo()
        self.four.MethodFour()
    def MethodB(self):
        print("Method B ----")
        self.two.MethodTwo()
        self.three.MethodThree()

def main():
    facade = Facade()
    facade.MethodA()
    facade.MethodB()

if __name__ == '__main__':
    main()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值