preface: 看完
大话设计模式
后发现短时间内没法掌握,这些设 计模式都是思想上的设计更准确说是面向对象语言在特定情况下的最佳实践,纯粹背诵记忆用处不大. 所以后面将以每隔一段时间发一到两篇设计模式的随想.这里先写个开头,并对几个设计原则
作简单介绍. 这里顺便膜拜下GoF
(Gang of Four).
六大设计原则
- 单一职责原则: 就一个类而言,应该仅有一个引起它变化的原因.
- 开放封闭原则: 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。
- 依赖倒转原则: 是程序要依赖于抽象接口,不要依赖于具体实现. 也就是面向接口编程.
- 里氏代换原则(Liskov Substitution Principle LSP): 任何基类可以出现的地方,子类一定可以出现. 也就是调用父类的地方程序能work, 把父类替换成子类,程序应当依然work.
- 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP): 就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的.
- 迪米特法则(Law of Demeter): 又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英文简写为: LOD。
23设计模式
创建型模式(5种)
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
结构性模式(7种)
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
行为型模式(11种)
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式
结尾: 这里先列举出所有模式及分类,后期有空一次填补每个设计模式的具体实现及类图.