什么是设计模式: 设计模式是一种解决软件开发中的设计问题的方法.

六大原则:

开闭原则(Open-Closed Principle)

一个软件实体,如类,模块和函数应该对扩展开放,对修改关闭.

简而言之就是在程序需要扩展功能的时候,不需要修改原有代码,而是通过扩展原有代码来实现功能(比如抽象类和接口的概念).

单一职责原则(Single Responsibility Principle)

每一个类应该只实现单一的职责,否则就应该把类分解为多个单一职责的类.

里氏替换原则(Liskov Substitution Principle)

所有引用基类的地方必须能透明地使用子类对象(比如Java的向上转型).

依赖倒置原则(Dependency Inversion Principle)

  1. 上层模块不应该依赖下层模块,应该依赖抽象.
  2. 抽象不应该依赖细节,细节应该依赖抽象.

接口隔离原则(Interface Segregation Principle)

  1. 客户端不应该依赖他不需要的接口.
  2. 类间的依赖关系应该建立在最小接口上

迪米特法则(Demeter Principle)

一个类对自己依赖的类应当了解的越少越好.

合成复用原则(Composite Reuse Principle)

尽量使用对象组合,而不是类继承.

设计模式分类

创新型:

  • 工厂模式
  • 抽象工厂模式
  • 建造者模式
  • 原型模式
  • 单例模式

结构型:

  • 适配器模式
  • 装饰器模式
  • 代理模式
  • 外观模式
  • 享元模式
  • 桥接模式
  • 组合模式

行为型:

  • 观察者模式
  • 迭代器模式
  • 责任链模式
  • 模板方法模式
  • 访问者模式
  • 策略模式
  • 解释器模式
  • 命令模式
  • 状态模式
  • 中介者模式
  • 备忘录模式