您的位置:首页 > 编程语言 > Python开发

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

2016-10-31 10:00 288 查看
股民炒股代码:

#!/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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式