Python 设计模式之路(一)——设计模式 初识
本节内容
- 设计模式是什么?
- 如何使用设计模式?
- 设计模式与SOLID
- "四人帮"的23种设计模式
一、设计模式是什么?
设计模式(Design Pattern)是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。1994年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides发表了一本题为《设计模式 - 可重用的面向对象软件元素》的图书,从而软件开发中开创了设计模式的概念。
曾经入的坑
- 设计模式高大上。除了名字高大,本质就是对软件领域遇到的问题及处理方法的总结和《21天泡到女神》一路货色
- 设计模式代码写不出来。只是想了解设计模式是什么,无需写代码。要和实际代码结合,设计模式不背锅
- 设计模式都明白还是不知道怎么用。只知其然,不知其所以然。意思是看了《21天泡到女神》就能泡到女神?给你一本武功秘籍你就是武林高手?
二、如何使用设计模式?
和你得到一个武林秘籍一样,都是从扎马步开始的
阶段一
- 拿到需求,打开IDE,一个字"写"
- 出了问题,改代码
- 想:有没有好的方法少改代码?
- 把解决问题的思路记录
阶段二
- 拿到需求,一个字"想"
- 找难点:哪些曾经做过的,用了什么方法?哪些没有做过
- 按照阶段一的方法攻克
- 完善笔记,对比设计模式思路
阶段三
- 拿到需求,一个字"想"
- 找难点,参考笔记攻克
- 写
- 想:这些代码其他人是不是都写过了?例:数据库,浏览器
- 笔记完善,完善笔记:①自己的解决方法②开源社区成熟软件代码
阶段四
- 拿到需求,一个字"想"
- 哪些需要开发,哪些需要买
三、设计模式与SOLID
以泡妞为例:
- SOLID:应该让对方感觉到你的优点,你的好;不应该泡妞花光你所有的家当;决定结婚前要见家长...
- 设计模式:参见《21天泡到女神》
一句话:思想形成套路,套路应用实践
四、"四人帮"的23种设计模式
1)创建型
特点:
- 基于对象的创建方式
- 将对象的创建细节隔离开来
- 代码与所创建对象的类型无关
内容:
- 1. Factory Method(工厂方法)
- 2. Abstract Factory(抽象工厂)
- 3. Builder(建造者)
- 4. Prototype(原型)
- 5. Singleton(单例)
2)结构型
特点:
- 通过组合获得更大功能的类和对象的结构
- 简化结构,识别类和对象的关系
- 主要关注类的继承和组合
内容:
- 6. Adapter Class/Object(适配器)
- 7. Bridge(桥接)
- 8. Composite(组合)
- 9. Decorator(装饰)
- 10. Facade(外观)
- 11. Flyweight(享元)
- 12. Proxy(代理)
3)行为型:
特征:
- 关注对象之间的交互及响应性
- 对象间应该能够交互,同时保持松散的结构
内容:
- 13. Interpreter(解释器)
- 14. Template Method(模板方法)
- 15. Chain of Responsibility(责任链)
- 16. Command(命令)
- 17. Iterator(迭代器)
- 18. Mediator(中介者)
- 19. Memento(备忘录)
- 20. Observer(观察者)
- 21. State(状态)
- 22. Strategy(策略)
- 23. Visitor(访问者)