《大话设计模式》Python版代码实现
2013-04-09 22:43
232 查看
《大话设计模式》Python版代码实现
上一周把《大话设计模式》看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多、偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界。《大话设计模式》的代码使用C#写成的,而在本人接触到的面向对象语言中,只对C++和Python还算了解,为了加深对各个模式的理解,我在网上下载了一个C++版的源代码,并根据自己的理解边读这本书边动手实践C++源代码,同时将其改写成了Python代码,算是一箭三雕吧。
由于这些代码的目的是展示各个设计模式而非完成一个具体的复杂任务,基于C++版本改写,例子的取材也和《大话设计模式》基本相同,再加上个人水平有限,因此这些Python版代码写的比较简单,虽然能跑起来是不假,不过难免有bug,而且实现也不一定最优,C++的味道比较浓而不够pythonic,还请高手包容指正。不过我还是尽量把或多或少有些pythonic的东西放在每个模式的“代码特点”部分进行展示,而这个“代码特点”里也不仅仅是pythonic的东西。
使用Python版本为2.6。
配图同样摘自《大话设计模式》,因此是C#风格的UML类图,为了便于排版已经缩小了。
一、简单工厂模式
简单工厂模式
二、策略模式
策略模式
三、装饰模式
装饰模式
四、代理模式
代理模式
五、工厂方法模式
工厂方法模式
六、原型模式
原型模式
七、模板方法模式
模板方法模式
八、外观模式
外观模式
九、建造者模式
建造者模式
十、观察者模式
观察者模式
十一、抽象工厂模式
抽象工厂模式
十二、状态模式
状态模式
[b]十三、适配器模式
适配器模式
十四、备忘录模式
备忘录模式
十五、组合模式
组合模式
[b]十六、迭代器模式
单例模式(四种方法)
[b]十八、桥接模式
桥接模式
[b]十九、命令模式
命令模式
在for中remove会导致bug的展示代码:
bug
二十、职责链模式
职责链模式
[b]二十一、中介者模式
中介者模式
[b]二十二、享元模式
享元模式
二十三、解释器模式
解释器模式
[b]二十四、访问者模式
[b]访问者模式
上一周把《大话设计模式》看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多、偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界。《大话设计模式》的代码使用C#写成的,而在本人接触到的面向对象语言中,只对C++和Python还算了解,为了加深对各个模式的理解,我在网上下载了一个C++版的源代码,并根据自己的理解边读这本书边动手实践C++源代码,同时将其改写成了Python代码,算是一箭三雕吧。
由于这些代码的目的是展示各个设计模式而非完成一个具体的复杂任务,基于C++版本改写,例子的取材也和《大话设计模式》基本相同,再加上个人水平有限,因此这些Python版代码写的比较简单,虽然能跑起来是不假,不过难免有bug,而且实现也不一定最优,C++的味道比较浓而不够pythonic,还请高手包容指正。不过我还是尽量把或多或少有些pythonic的东西放在每个模式的“代码特点”部分进行展示,而这个“代码特点”里也不仅仅是pythonic的东西。
使用Python版本为2.6。
配图同样摘自《大话设计模式》,因此是C#风格的UML类图,为了便于排版已经缩小了。
一、简单工厂模式
简单工厂模式
二、策略模式
策略模式
三、装饰模式
装饰模式
四、代理模式
代理模式
五、工厂方法模式
工厂方法模式
六、原型模式
原型模式
七、模板方法模式
模板方法模式
八、外观模式
外观模式
九、建造者模式
建造者模式
十、观察者模式
观察者模式
十一、抽象工厂模式
抽象工厂模式
十二、状态模式
状态模式
[b]十三、适配器模式
适配器模式
十四、备忘录模式
备忘录模式
十五、组合模式
组合模式
[b]十六、迭代器模式
单例模式(四种方法)
[b]十八、桥接模式
桥接模式
[b]十九、命令模式
命令模式
在for中remove会导致bug的展示代码:
bug
二十、职责链模式
职责链模式
[b]二十一、中介者模式
中介者模式
[b]二十二、享元模式
享元模式
二十三、解释器模式
解释器模式
[b]二十四、访问者模式
[b]访问者模式
相关文章推荐
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- 【Python】《大话设计模式》Python版代码实现
- 《大话设计模式》Python版代码实现
- [转]《大话设计模式》Python版代码实现
- 使用Python下载歌词并嵌入歌曲文件中的实现代码
- 机器学习-朴素贝叶斯(python3代码实现)
- python实现机械分词之逆向最大匹配算法代码示例
- 手把手教你用1行代码实现人脸识别 -- Python Face_recognition
- 吴恩达 深度学习第三周 浅层神经网络 logistic_regression python代码实现
- 基于gensim的Doc2Vec简析,以及用python 实现简要代码
- python 实现A*算法的示例代码
- 一文读懂FM算法优势,并用python实现!(附代码)