一、简介

设计模式是对一些反复使用、被多数人知晓的、经过分类的、代码设计经验的总结。它代表了最佳的实践,通常被有经验的面向对象的软件开发人员使用。

使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

二、设计原则

面象对象的设计原则主要有以下几种:

  • 单一职责原则(Single Responsibity Principle)
  • 开闭原则(Open Closed Principle)
  • 里氏代换原则(Liskov Substitution Principle)
  • 依赖倒置原则(Dependency Inversion Principle)
  • 接口隔离原则(Interface Segregation Principle)
  • 最小知识原则(Principle of Least Knowledge)

三、分类

设计模式根据使用目的分为三种:

1、创建型(Creational)

创建型模式主要用来创建对象,主要有以下5种:

  • 单例模式(Singleton)
  • 工厂方法模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
  • 建造者模式(Builder)
  • 原型模式(Prototype)

2、结构型(Structural)

结构型模式主要用来组合类或者对象间的关系,主要有以下7种:

  • 适配器模式(Adapter)
  • 桥接模式(Bridge)
  • 组合模式(Composite)
  • 装饰者模式(Decorator)
  • 外观模式(Facade)
  • 享元模式(Flyweight)
  • 代理模式(Proxy)

3、行为型(Behavioral)

行为型模式实现类或对象间的交互以及职责分配,主要有以下11种:

  • 模板方法模式(Template Method)
  • 观察者模式(Observer)
  • 迭代器模式(Iterator)
  • 解释器模式(Interpreter)
  • 命令模式(Command)
  • 状态模式(State)
  • 策略模式(Strategy)
  • 中介者模式(Mediator)
  • 备忘录模式(Memento)
  • 责任链模式(Chain of Responsibility)
  • 访问者模式(Visitor)