设计模式总览

设计模式是什么?

在软件工程中,设计模式(Design Pattern)是对软件设计中常见问题的典型解决方案。它们就像能根据需求进行调整的预制蓝图,可用于解决代码中反复出现的设计问题。

设计模式与方法或库的使用方式不同,你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码,而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。

人们常常会混淆模式和算法,因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤,而模式则是对解决方案的更高层次描述,同一模式在两个不同程序中的实现代码可能会不一样。

算法更像是菜谱,提供达成目标的步骤。而模式更像是蓝图,你可以看到最终的结果和模式的功能,但需要自己确定实现步骤。

设计模式的七大原则

  1. 单一职责原则(SRP):一个接口或类只有一个原因引起变化
  2. 里氏替换原则(LSP):所有引用基类的地方必须能透明地使用其子类对象
  3. 依赖倒置原则(DIP):高层模块不依赖于底层模块,都依赖于抽象;抽象接口不依赖于具体实现,具体实现依赖于抽象接口
  4. 接口隔离原则(LSP):类之间的依赖关系应该建立在最小的接口上
  5. 迪米特法则(LOD):一个软件实体应该尽可能少的与其他实体发生相互作用
  6. 开闭原则(OCP):软件中的对象(如类、模块、函数等)应该对于扩展开放,但是对于修改关闭
  7. 组合/聚合复用原则(CARP):尽量使用组合/聚合,而不是通过继承达到复用的目的

设计模式分类

创建型模式

在软件工程中,创建型模式是处理对象创建的设计模式。创建型模式关注的重点在于如何创建对象,其核心思想是要把对象的创建和使用相分离。创建型模式主要分为以下几种:

  1. 工厂方法模式
  2. 抽象工厂模式
  3. 生成器模式
  4. 原型模式
  5. 单例模式

结构型模式

在软件工程中,结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。结构型模式主要分为以下几种:

  1. 适配器模式
  2. 桥接模式
  3. 组合模式
  4. 装饰模式
  5. 外观模式
  6. 元模式
  7. 代理模式

行为模式

在软件工程中,行为模式用来识别对象之间的常用交流模式并加以实现,负责对象间的高效沟通和指责委派。行为模式主要分为以下几种:

  1. 责任链模式
  2. 命令模式
  3. 迭代器模式
  4. 中介者模式
  5. 备忘录模式
  6. 观察者模式
  7. 状态模式
  8. 策略模式
  9. 模板方法模式
  10. 访问者模式

参考资料

  1. 设计模式 (计算机)
  2. 设计模式
  3. 什么是设计模式?
posted @ 2022-10-24 18:43  kokasumi  阅读(12)  评论(0编辑  收藏  举报