设计模式-外观模式
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()
代码中,在基金类中进行创建各种股票,封装了各种操作,只将简单的接口呈献给用户。完全符合“外观模式”概念。
其实在我们日常编码中,不管学没学过设计模式,大多都会用到这个基本的概念,这里只是系统的将他提取出来。
下一章是“建造者模式”。请大家继续关注。。。
相关文章推荐
- 设计模式-外观模式(facade pattern)
- 乐在其中设计模式(C#) - 外观模式(Facade Pattern)
- 设计模式之 外观(门面)模式 Facade
- java设计模式之外观模式
- Python设计模式-外观模式
- 设计模式之外观模式(Facade)
- 设计模式之外观模式Facade
- 设计模式七之适配器模式和外观模式1
- 设计模式--外观模式
- 设计模式之外观模式
- C#设计模式——外观模式(Facade Pattern)
- 设计模式:外观模式(Facade)
- android应用开发设计模式之外观模式
- 设计模式-结构型模式,外观模式(6)
- 设计模式之---外观模式(Facade)
- 学习设计模式第十三 - 外观模式(门面模式)
- 设计模式袖珍版 连续转载之 - Facade(外观)
- 设计模式学习6--外观模式
- 设计模式学习--------4.外观模式学习
- 设计模式C++实现(7)——外观模式、组合模式