您的位置:首页 > 其它

设计模式-外观模式

2009-06-17 22:29 197 查看
外观模式,我的理解就是将复杂的类进行重新封装,将简单的接口呈现出来,降低调用端和实际类的耦合性。

拿《大话设计模式》上边关于“股票”和“基金”的例子来说。

对于不入门的股民来说,股票交易有些过于庞大,需要学习的东西很多,如果没整明白就进行投资,很容易赔钱的。很多刚入股市的股民都赔的很惨。而买“基金”有提出了一个新的观念,我们买基金,只关注基金的涨落,不去关注复杂的股市,而银行用我们的投资轻一些专家来购买股票或做其他投资,从而有效降低了我们的风险,毕竟我们没有专业的水准高。

将股票和基金对比,可以看做我们这里要讲的“外观模式”,将复杂进行封装,只开放简单接口。

还是老样子,不多说了,上代码:

# coding:utf-8
# 设计模式之外观模式
# 股票类
class shares1():
def __init__(self,name):
self.name = name
def sell(self):
print u"卖出"+self.name
def buy(self):
print u"买入"+self.name
class shares2():
def __init__(self,name):
self.name = name
def sell(self):
print u"卖出"+self.name
def buy(self):
print u"买入"+self.name
class shares3():
def __init__(self,name):
self.name = name
def sell(self):
print u"卖出"+self.name
def buy(self):
print u"买入"+self.name
# 基金类
class fund():
def __init__(self,name):
self.name = name
self.s1 = shares1(u"股票1")
self.s2 = shares2(u"股票2")
self.s3 = shares3(u"股票3")
def sell(self):
self.s1.sell()
self.s2.sell()
self.s3.sell()
def buy(self):
self.s1.buy()
self.s2.buy()
self.s3.buy()

if __name__=='__main__':
f = fund("基金1")
f.sell()
f.buy()


代码中,在基金类中进行创建各种股票,封装了各种操作,只将简单的接口呈献给用户。完全符合“外观模式”概念。

其实在我们日常编码中,不管学没学过设计模式,大多都会用到这个基本的概念,这里只是系统的将他提取出来。

下一章是“建造者模式”。请大家继续关注。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: